{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "Yellowbrick可视化工具旨在指导模型选择过程。一般来说，模型选择是一个搜索问题，定义如下：给定N个由数值属性描述的实例和（可选）一个估计目标，找到一个由特征、算法和最适合数据的超参数组成的三元组描述的模型。在大多数情况下，“最佳”三元组是指收到模型类型的最佳交叉验证分数的三元组。\n",
    "\n",
    "Yellowbrick.model_select包提供了可视化工具，用于检查交叉验证和超参数调优的性能。\n",
    "许多可视化工具包装sklearn.model_select和其他工具中的功能，用于执行多模型比较。\n",
    "\n",
    "当前实现的模型选择可视化器如下：\n",
    "+ 验证曲线：可视化超参数的调整如何影响训练和测试分数，以调整偏差/方差。\n",
    "+ 学习曲线：显示训练数据的大小如何影响模型，以诊断模型是否受方差误差和偏差误差的影响更大。\n",
    "+ 交叉验证分数：将交叉验证的分数显示为条形图，平均值作为水平线。\n",
    "+ 特征重要性：按模型中的相对重要性对特征进行排名\n",
    "+ 递归特征消除：按重要性选择特征子集\n",
    "\n",
    "模型选择大量使用交叉验证来评估估计器的性能。交叉验证将数据集分为训练数据集和测试数据集；该模型适合训练数据，并根据测试数据进行评估。这有助于避免常见的陷阱，过度拟合，因为模型只会记住训练数据，而不能很好地推广到新的或未知的输入中。\n",
    "\n",
    "有很多方法可以定义如何拆分数据集以进行交叉验证。有关scikit-learn如何实现这些机制的更多信息，请查阅scikit-learn文档中的[交叉验证：评估估计器性能。](http://scikit-learn.org/stable/modules/cross_validation.html)\n",
    "\n",
    "本文如果数据集下载不下来，查看下面地址，然后放入yellowbrick安装目录\\datasets\\fixtures文件夹:\n",
    "\n",
    "\n",
    "\n",
    "```\n",
    "{\n",
    "  \"bikeshare\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/bikeshare.zip\",\n",
    "    \"signature\": \"4ed07a929ccbe0171309129e6adda1c4390190385dd6001ba9eecc795a21eef2\"\n",
    "  },\n",
    "  \"hobbies\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/hobbies.zip\",\n",
    "    \"signature\": \"6114e32f46baddf049a18fb05bad3efa98f4e6a0fe87066c94071541cb1e906f\"\n",
    "  },\n",
    "  \"concrete\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/concrete.zip\",\n",
    "    \"signature\": \"5807af2f04e14e407f61e66a4f3daf910361a99bb5052809096b47d3cccdfc0a\"\n",
    "  },\n",
    "  \"credit\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/credit.zip\",\n",
    "    \"signature\": \"2c6f5821c4039d70e901cc079d1404f6f49c3d6815871231c40348a69ae26573\"\n",
    "  },\n",
    "  \"energy\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/energy.zip\",\n",
    "    \"signature\": \"174eca3cd81e888fc416c006de77dbe5f89d643b20319902a0362e2f1972a34e\"\n",
    "  },\n",
    "  \"game\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/game.zip\",\n",
    "    \"signature\": \"ce799d1c55fcf1985a02def4d85672ac86c022f8f7afefbe42b20364fba47d7a\"\n",
    "  },\n",
    "  \"mushroom\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/mushroom.zip\",\n",
    "    \"signature\": \"f79fdbc33b012dabd06a8f3cb3007d244b6aab22d41358b9aeda74417c91f300\"\n",
    "  },\n",
    "  \"occupancy\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/occupancy.zip\",\n",
    "    \"signature\": \"0b390387584586a05f45c7da610fdaaf8922c5954834f323ae349137394e6253\"\n",
    "  },\n",
    "  \"spam\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/spam.zip\",\n",
    "    \"signature\": \"000309ac2b61090a3001de3e262a5f5319708bb42791c62d15a08a2f9f7cb30a\"\n",
    "  },\n",
    "  \"walking\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/walking.zip\",\n",
    "    \"signature\": \"7a36615978bc3bb74a2e9d5de216815621bd37f6a42c65d3fc28b242b4d6e040\"\n",
    "  },\n",
    "  \"nfl\": {\n",
    "    \"url\": \"https://s3.amazonaws.com/ddl-data-lake/yellowbrick/v1.0/nfl.zip\",\n",
    "    \"signature\": \"4989c66818ea18217ee0fe3a59932b963bd65869928c14075a5c50366cb81e1f\"\n",
    "  }\n",
    "}\n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import warnings\r\n",
    "warnings.filterwarnings(\"ignore\")\r\n",
    "\r\n",
    "# 多行输出\r\n",
    "from IPython.core.interactiveshell import InteractiveShell\r\n",
    "InteractiveShell.ast_node_interactivity = \"all\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 1 验证曲线\n",
    "模型验证用于确定估计器对经过训练的数据的有效性以及对新输入的通用性。为了衡量模型的性能，我们首先将数据集分为训练和测试分割，将模型拟合到训练数据上并在保留的测试数据上评分。\n",
    "\n",
    "为了使评分最大化，必须选择模型的超参数，使模型在指定的特征空间内运行。大多数模型都有多个超参数，选择这些参数组合的最佳方法是使用网格搜索。然而，有时绘制单个超参数对训练和测试数据的影响，以确定估计器对某些超参数值是欠拟合还是过拟合是有用的。\n",
    "\n",
    "\n",
    "|可视化器|ValidationCurve|\n",
    "|-|-|\n",
    "|快速使用方法|validation_curve()|\n",
    "|模型|分类与回归|\n",
    "|工作流程|选型|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 1.1 基础使用\n",
    "在第一个示例中，我们将使用ValidationCurve可视化工具探索回归数据集，在第二个示例中探索分类数据集。请注意，任何实现fit()且predict()具有适当评分机制的估算器均可与此可视化工具一起使用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 800x550 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_energy\r\n",
    "from yellowbrick.model_selection import ValidationCurve\r\n",
    "\r\n",
    "from sklearn.tree import DecisionTreeRegressor\r\n",
    "\r\n",
    "# Load a regression dataset\r\n",
    "X, y = load_energy()\r\n",
    "\r\n",
    "# param_name参数名称\r\n",
    "# param_range参数范围\r\n",
    "# cv交叉认证指定折数\r\n",
    "# scoring评价指标\r\n",
    "viz = ValidationCurve(\r\n",
    "    DecisionTreeRegressor(), param_name=\"max_depth\",\r\n",
    "    param_range=np.arange(1, 11), cv=10, scoring=\"r2\"\r\n",
    ")\r\n",
    "\r\n",
    "# Fit and show the visualizer\r\n",
    "viz.fit(X, y)\r\n",
    "viz.show();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "在加载和修改数据之后，我们使用一个DecisionTreeRegressor初始化ValidationCurve。决策树越深越过适合，因为在树的每一层，分区处理的数据子集越小。处理这种过拟合过程的一种方法是限制树的深度。验证曲线探索了“max_depth”参数与R2评分之间的关系，并进行了10个shuffle拆分交叉验证。参数param_range指定max_depth的值，这里从1到10不等。\n",
    "\n",
    "从可视化结果中我们可以看到，深度限制小于5个水平严重不适合这个数据集上的模型，因为训练分数和测试分数在这个参数范围内一起攀升，并且由于测试分数交叉验证的高可变性。深度为7之后，训练和测试的分数就会出现分歧，这是因为更深的树开始过度拟合训练数据，无法为模型提供普遍性。然而，由于交叉验证的分数不一定会减少，所以模型不会因为方差而产生很大的误差。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 1.2 快速方法\r\n",
    "使用关联的快速方法，可以在一行中实现与上述类似的功能validation_curve。此方法将实例化并适合ValidationCurve可视化器。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEXCAYAAACgUUN5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsvXmAnEWZ+P9537ev6Z77SDLJ5GKSVAIJAYIilxwCcgjuuqyCJ67L7qrsev5E/SoqLuK6KroiK8qq4IUIqKAg9yGHHAECAVIh90yuua/umT7et35/vO/MdM/0zPQk09M9M/WBJO9RVe/zVnc/T9VTT1UZSik0Go1GM3cxCy2ARqPRaAqLNgQajUYzx9GGQKPRaOY42hBoNBrNHEcbAo1Go5njaEOg0Wg0cxxtCAqMEGKZEEIJIXze+b1CiA/lkvYQnvVFIcRNhyPvTEQIcbIQ4g0hRJ8Q4u8KLc945PoZjfc90Wgmi6HnERweQoi/AM9KKa8acf2dwI1Ag5QyNU7+ZcBOwD9eukNIezrwSyllQw6vcdgIIeqB/wTOB0qBvcBvgW9JKaPTIcM4sj0E3CWl/P4Ulfdz4L1A3Lu0G7gb+KaUsnsqnjEdCCF+BLzfOw0ABsPv9Fcp5XlT/Lx/xv1N9AMOsB34opTy3ql8jmby6B7B4XMz8H4hhDHi+geAX02ksGcDQohq4GmgBDhRSlkGnA1UAo2HUN4h9XjGYSnw6qFkHEeWb3nvWQd8GHgL8KQQInJoIk4/Usp/k1KWSilLgW8Avx08z2YEpuhz+av3vErgJuA2IUTZFJSbQR6+Q5N9vimEmDH6taCVNUv4A/Aj4FTgcQAhRBXwDuAE7/wC3NZyI9AN/J+U8qvZChNCPIrbkr9JCGEB/wVcBvQA3xmR9sPA54AGoBX4LynljZ4yuhcICiH6vOSrgH8BVkgp3+/lvwi4FlgEvAR8VEr5undvF3A98EFcRfoX4ENSyoEsYn8a6AXeL6V0AKSUTcAnvLKWMaInM+I9LwMuB571nvdjIcRHgVOklJu99HXAHmCplLJFCPEOr06XAa8B/yalfDlLfW4HlgN3CyFsoMb78yPgFKDDq7efeOm/CqwFBoCLvHcb01Xj1cdzXl1uxTUK13tl/RPw/wELvHf7Fynlbu/eUcD3gA1AEvi+lPIb3vNXSCnfL4QIec8+D7CAN4B3SCkPjqg/E/iiV4cl3mf171LK7rS6vwz4OhAGrpNSXjPWO6XV3Qrvmf8EfA3YBpwphDgZ97u4GtgF/IeUcvC7XwlcB5wL2MBPga8Ofi/S6s0RQvzCq6sVwIte/vHKbsRteK3HbXhsB0qklJcdoqwfAb6M+31oxe2d3CqEWOXV+3rvs7lfSvleL88p3ue2EpBePT/j3XsCeAQ4CzgGWOM9s+iZMRarWJFS9gO34SqwQd4NbJFSbvLOo979SuAC4KM5+qovxzUoxwLHAxePuN/i3S/HVUDXCSGO81wx5wH70lp4+9Izel/23wCfxG3V3oOrLAMj3uNcXEV6NK4yycZZwJ0jf+yT5ARgBzAfuBq4E7h0hCyPeUbgWFwF86+4P+IbgbuEEMGRhUopG3ENyIVePcSBW4FmYCFunX5DCHFmWrZ3Arfjfl6/ykV4KWUv8ABug2DQNfhF4F249ftX3PrGawE/iKuwF+IqwoeyFPshoAJY7L3nv+G6VUZymffnDOAIXNfc9SPSnAII4G3AVUKINbm8l8dbcRXpBUKIxcBdwFeAauDzwJ1CiBov7S88GRtxjdwFuN/NDLwW+4eBBNDkXZuo7FuBJ3Hr4j8ZdmtNWlYhRDnwXeBsr2d3MjDYkLgG+DNQhdvI+qEnX613/TueDD8A7vEafoN8ANcYleN+x2YEukcwNdwM/EkIcYXXQvygdw0AKeWjaWlfFkL8BjgNtzcxHu8Gvue1rhFCXAucnlbun9PSPiaEuB9XEb2Qg8zvAf4spXzAK/vbuC34k4BBef9n0IAIIe7GbeVkowbYn8Mzx2OflPIH3nFKCPFrXAX//7xr7/XOwe3Z3DjYEgNuFkJ8Edc989h4D/GUw8nABd5n9ZI3OPtB4GEv2dNSysHPJpviHfMdcJUfuEr72rQe1jeALwohluLW8QEp5WAPbwB4ZmRhuK3RGtwewsvAxjGe+z7gu1LKHd6zvgBs9nqMg3zNa7RsEkJswm3tvp7je31FShnzyv4g7njLfd69v3jlnev1Us4CKj2DGxNCfA+3bv/PS3+KEKILiHjv914pZZt3b7yyn8ZtjLxVSpkAHhdCpH//JyUr7piOAtYKIZqklPsZ/g4ncXua9VLKvbjGB+BC4FUp5W+8818IIf4D19j90rv208HPfCahDcEUIKV8QgjRBvydEOI54M24LUEAhBAnAN/EdTkEgCDwuxyKXojXWvLYnX5TCHEebmtnFW7vLgy8kqPYC9PL87rqTbhuokEOpB3HvDzZaAfqc3zuWDSNOH8ECHt1dxDXCP3eu7cU+JAQ4t/T0gfGkS+dhUCH14IfZDduj2ssWXJlEa6raVDG7wsh0t15hpdmMa5bYyJ+4aW91XO5/BL4f1LK5Ih0GZ+ld+zD7V0NMvKzLM3h+YOk18dS4FIhxN+nXfPj9m6W4n63DwohBu+ZZLpHnpBSnu71in6G21O5I4eyFwLtnjFLl6vuUGSVUvYIIS4FPgP8zHPrfFpKudW79nXgee93/W0p5c2Mrme88/TfzKF+dwqKNgRTxy24LRoB3CelPJh279e4XfXzpJQDXiupNocy9+MqgkGWDB54bpA7vGf+UUqZFEL8AVfZgNvaGY99wLq08gzvWXtzkGskDwJ/L4T42hjuocGooTDuWAe4fvN0MuSVUtpCiNtw3UMHgT+lKe8m4Jpc/NxZ2AdUCyHK0spbQuZ7TzqUTghRitsaHpRpUMZRriWvV3DJRGV6Cv9rwNc8X/89uH7p/xuRdB+u0htkCZDCrbfDjhqTUqbXRxPwMynlR0em83pbMaB6IjehlLLXGwfaLoT4mdfjGa/sRqBGCBFKG6dajNubmrSsXtp7gXuFECW4Y2U3Amd4vYN/9p77VuABIcTjuPV8wYhilpDZs5+RYZjaEEwdtwBfwu2+fmrEvTLcVuiAEOLNuG6O+3Mo8zbgP4QQf8JVpp9PuzfYs2jFdaWcB5wDbPbuH8T94VSMEdJ4G/B5IcTbcAe5P4EbOvhUDnKN5Lu4/tqbhRBfklLuFkIswm1Z/VxK+bIQYi9udNWNuL7vXKKJfo37I2tn2EUE8BPg90KIB3EHYcO4LrPHR7T0RyGlbBJCPAVcK4T4LG5v6iO47pVJ4xnktbiD+p24rVxwB6O/LoR4SUr5qhCiAjhHSvk74E/Ad4UQnwT+F/ezPDLN1TVY9hlAG+5geA+uyyKbgv0NcKUQ4l7c78NgBFAqrWU+VfwC+JsQ4k5cV5ofOBGQXt0+BnzbG/Tuwx2zWDg4QJuOlLJVCPFT3AHbf5yg7O1CiFeArwghvoLb676A4d7EpGTFVdjH447NxHF/Xw6AEOLdwJOeW6jLS2vjfm7fE0K8x3vuu3HHd7K5qGYUerB4ipBS7sJVohHcAap0PgZcLYToBa7CVcK58BPgPmATrt//zrTn9QL/4ZXViWtc7kq7vwVXQewQQnQJITLcJlJKiau8f4CrbC7EHVBN5ChbelkduH7vJPCM954P4UZIbfOSXY4bQdMOHEUOBsdTjFHcLvm9adef98q73nv3bYw9kJ2NS3F9wPtw3U1fkVI+OIn8AJ/z3rMdtxGwETjJG6hHSvl7XONwqxCiB9dAn+fd68UNr70Q12XzBu5A70gW4A5a9+D68x/DVW4j+al3/XHcCKEB4N+zpDtsvO/53+Mq71bcgfjPMKxL3o/7G3gN97P5HaN7f+lcB1wkhDgyh7IvxR0Mbsd1if6W4XkPk5XVwv0+7vfKOwn4uJf1BNxIsCjub+7jUso9UspW3EiyK708n8KN4uoc5/1mBHpCmUajmZEIIe4AXpJSfr3Qssx0tGtIo9HMCDy3aivuAO25uKHTXy2kTLMFbQg0Gs1MYSGub74aN0b/cillrlFymnHQriGNRqOZ48yoHsHGjRuDwJtwB3jsAouj0Wg0MwULd67Pcxs2bBg1wD6jDAGuEfhroYXQaDSaGcqpwBMjL840Q7AfYNWqVQQCgYnSFi2bN29m7dq1hRajaND1MYyui0x0fWRyqPWRSCTYunUrjLEUzEwzBDZAIBAgGBy1vtiMYqbLP9Xo+hhG10Umuj4yOcz6yOpS1xPKNBqNZo6jDYFGo9HMcbQh0Gg0mjmONgQajUYzx9GGQKPRaOY42hBoNBrNHEcbAo1Go5njzLR5BBrNrMRRDradJOn0Ex3Ito8Q5Lr5lUJhDG1UlxvZSjayHGEAhoGR8YTMMwy8c2Pw/8GMAJiGkVbYyOIz5VbKwXHs9ATjSpo9SZYrxuTqZ7ajDYFGk0eUcrAdm6QdJ+UkcBwbR9nYTgoHG8dxcFSKwcUfB5weuvtbs5ZVKOWVfWFKlfb3qAwjUo5jwEZsrOoaAgUYKKDPbmFf97a05GPUgRr7NHu1TWQ8JsySo7HNxSwxSsixyk46/VmvHy7aEGg0h4BSDraySdkJUnYSx0lhKxvHU/C2p/CV46AMhYGJaWT3xBqYQ3rAMIyia61ml8dI+zvrrUk+ZKxnm1hGDmqquKpsXA7HeKqsO5UePtoQaDRpKKVwlE3KTpKy42nK3cF2UqjB1rxyUEphGKbrGMmiLA0MDNMqwFtoNJNDGwJNUaCU47aBlGLwPzylrJRyFTQOSjlDadz/ldtKUoOtKDetGnJdeP8OXUu77z5w6JqtBst3AMNV8mO0hk3DmlGtUI1mPLQh0BSElJ0gFu9hIBWl1z7I3s5tGIbnHVYKNegqxvOXGsaQMyJfrhN3HNSEMVw4Gs1sRRsCzbSRTA0QS/QykIqRSsUxPbeJgYGV7kIZEVSi0WjyizYEmrwST/XTH3eVv+0kXJcKDBkBjUZTeLQh0EwpSiniyRj9yV7iqX5sJzms/A2t/DWaYkQbAs1ho5RiIBmlP9FLPBVDKcf1taOVv0YzE9CGQHNIKOUQS/YRT/QRT8VwlBqKkzf0YKtGM6PQhkCTM45y6I/3MJCMui1/8JS/kbZsgEajmWloQ6AZF0fZbphnMko81T8UYulOpNJoNLMBbQg0o3Acm754F/FUjESyf2hi1VhLJGg0mpmNNgQaAFJ2klii21X+qQFv/RtDh3lqNHMAbQhmIe5qkSNXh1Qj/lE4TopooodEqp+EHcccVP460kejmVNoQzDNOMohZndwsHvXkKoeXol3UEsProozOLk2XZ1nKvTh65lHSqVNzDVG5vUWazCGwzstrfw1mjmLNgTTiO2kaOttxlZJHDW82cZYq7Vn2xhkaJ3yUWujj5l5vII1mlE8sLUDAzhrVXXB5di3L8GqVQUVo6jqo2VfjBPfNPVla0MwTaTsJG19Td7SxVoTa0ZTDIpvIOXwlft2YhhwyhGVhHyFCRAYlCOZTPKeU5yCy1Es9ZFK2lxxgU3IP7U9+Ly9lRDip0KIFiHE5jHuG0KI/xFCbBNCvCyEOC5fshSalJ2grbdpjJ2eNJrhH/r1L/QxkMrP5iO58MMnm9nTFWd3Z5wbntxbcDn2R52ikKNY6mNfNMW3Hs6qUg+LfJq3nwPnjnP/PGCl9+dfgP/NoywFI5GK09rbNP52fZo5TzEovt2dA9zw1L5hmZ7ay57OAS3HNMkxtO+GUtiOIuX92d4W44anhr8T//Xwq+xs753SZ+fNNSSlfFwIsWycJO8EbpFSKuBvQohKIUS9lHJ/vmSabhKpftr79k2cUFNwCukHdhXO8A/9+iebWVcfoa7Uj+2A7ShspXAcSA0dK2zlnjvetZSjcNRwettR2A443j077X62tH+RHcTTeiPxlMPFt2zmlOUVKG8fH0cN7uLmpnGUQinvX+/+4CZBzlAeN41Kvz7yOC3/G22xUXK8/SebWFIZcjci8spV3sZC6efuv8PBFtnTjM4zFKCRVkbPgE1y8EU9Od56wwuEPbfMyPIyr3mklTt8f/S1yTCQsvnEH57jro+cOcmcY1PIMYJFQFPaebN3bUJDsHnz1HeNppqUk6BfdY65CfXWrVunWaLippD1kbAVX7y3E4AF51URsA5/DEcpRTSp6IwrugYcOuMOXQMOXXFF54BDV9r53l6bVJo2SNiKD/92y2HLMBXs60lw26bWvD/HnbHu/utk0YzRuM32tuhQGobSG2nHjD72/jKyHWekNTDT85lgGqMF8RlQGRgOyRtZ7tAzGdyP3k1hDJ1nvm/GeVrm9PPd3TZ9yUw5uru62bhx4+iKOkRm5GDx2rVrCQaDhRZjTAaSUTqi+zGYl/X+1q1bWVXoUIgiotD18Z3H9rA/2g7A/S1hPn3a4qzpBlIO7dEkbd6f9pj37+C12PBxezSZ0Zoci/KQhd9nkkpmjgvUl/s57YgKfKa7jpNlgmkY+EwDywDTNPGZuPdNA59h4LdMLAMsy8Bvuml9pok1eGwZWKaB3zCwLAPLMDLutfQm+JfbJQnblTtgGfzyvUeyqCKIAa6iNIwh5Wl6x6ankA1jWDmbxmB48rASdOeoDCrBzON0dncOcOaPXhrqFQR9Jo/82zEsqQpN5mM9bLLJ8XARyBHyWfz8srNYXlOWcxnxeHzcBnQhDcFeIP0X1+Bdm9HE4r10xg7qRdhmCLs6+jN88v/zRDPtsSRJW7lKPU3Z9yXscUpyCfkMKkt8HFETpLLER3WJj6qwj7pIgLpSP/VlQRZUBFlQGqQm4sdnGlkVzh0fXDftCod6+PjJi7ju8WYArji5gZOWVUyvDMDSqhAfO2nhkBwfP2nR9NdFEctx5ZlHTcoI5EIhDcFdwBVCiFuBE4DumT4+EI130x1r1UagSOmMJZGtMba29iNbY8jWGBubejNa7ilHcfPzB4bOLQMqQhZ1pT5WhEJUlVjUhP3URtw/NRE/80oDLCwPsaAsQFlo8j+pYlE4AB8/uYE7Xm7FMOBjJy8qiAzpciSTyaKQo1jqI5W0+dyZa6e8/LwZAiHEb4DTgVohRDPwFcAPIKX8EXAPcD6wDYgBH86XLNNB30AX3QOtemG2SZKP2PneeGpY2bfE2NoaY0tLjNZopqPVgKzjAesWhPna25dSXx5iXmmAgGWRb9teLIov5DP52tuXY3jHhZZj3759RSFHsdRHy772KZ9DAPmNGrp0gvsK+Hi+nj+d9PZ30DvQoY3AJDncSUOxhM0bbf2uom+NsbXFVfj7exOj0tZFfGxYFGZ5dQkr6kKI2jCr50eIJxVvv+mVDLfMjRevnvYWebEoPoCzCzyDdpCzV1WzlbZCi1FU9bHL6M9L2TNysLiY6Im10Rfv1LtyHQKDsfMANzy5d8xB2njKYXt7P7LFdeds8RT+3u74qNC76rCPYxaGWVIZpLEmxMq6MKvnhZlXGqQs6McyRzfti8UtUyyKTzP30IbgMOiKHSQW79FG4BDINlnn79bWkHIYcuW8fjCKbIvR1BnHHqHxK0IW6+rDNFQEWF4dZEVtCaIuzPyyIOXBACWB3LvPxeIH1mgKhTYEh4BSiq7YAfqTUW0EDpGv3Ldz1KSh0254aVQLPxIwEXUlLK4MsNhr5a+aV0J9WYhwwKIiFMBvHd5nUCx+4Jae3cSc9oI9P10OgHnlSwsuh66PTDn67PzUhzYEk0QpRUd0PwPJqB4TOAQStsMDWzvY2Dx6inzYb3LSsjIaKgMsqwqxojZEQ3mQUMBHacBHWcift4isQvuBbSfFlv1Pk0wlsZ03YZmF+WkOygFQU7qo4HLo+siUI5WySTlJfKZ/SsvXhmASKOXQ3rePRKpfG4FJIluj/Py5/dz9ajtdA248vsHw9PqAZfDzS1bRWFtCWWByrp3ZwM7WTfQnXeO4s20TK+Zt0HJoObLKsbn5MY5ZctaUlq8NQY4o5dDW10wyldDuoBzpGUhx60sHuOPlVl496EY7lAct3nlUFWeuqOD5pii/eMFdvuCKkxs4cVnhWuWF7P7HEj3sbNs0dL6zdRM1kQZC/gjDO82ptNVrh48HV9UZWlPHXehn+Dp4i9qotDV10vKq4bOBZJQdbS8NybGj9SWCvjBBXwnZNrEYvZx69h00hpdNyNabM4b/9srLJkdpoIqgPzxSgDGenv0Z2e+MvbFHNjnKQjWEfBEgbaOnIVT2s1GrDo/cPTAz3chNpuLJWIYcrzQ/SuO84ygLTd3vRRuCHHCUQ1tvEyk7qfcSmICU7fDItg5ue7mFR7Z1M5Byd2A7blGEc1ZVcHxDhNpIiAXlIS44cgGP7egpeOz8dHT/U3aCgWSUeCrm/puMMpCKEU9G6Yjuy9ioyFE2z+68a8plmCxKOby274lCi4FSDpuaHyq0GCjl8NKeBwotBraT4pntd3HWUZdNWZnaEEyAbado7WvCcWxtBMbAdhSypZc7Xmnlz6930tztxvHPK/XxrpWVvG1lBXURPzXhAPUVJQSsYbdPMcTOH073XymHeKrfU/JRBpKuck8/HkjFsJ3kxIWlEfSFqY4sHFq4bHhnuuFj9/toDLWmh65jZE2Xec87M4av7+3aSjTelSFHJFhJQ5UYft/hF8+sh2xraCo1qnWb9Sgtq0JxoHs7sURPRlHhQDkLKo5IL3rkw0Y/fyy5xkJlStbSs2voezFIib+M+eXLRvVGBhnd6xleFC/b9THzGcMH+7u2EUt0TyT9YaENwTik7CRtvc0oHG0ERmA7iv3d/Ty0vYO7X+vguT192MpdBO3U5WWcs6qSdfVhApZBbaSEBeWhrAO9hY6dz+aWWVi5knCgnJSd9BR6lHgyxkAqsyU/kIyRSMXGVTZ+K0g4UEbQFyHkjxD0hwn5IgT9EUL+MEFfhKQd56ltdwz1CkzD4s1HXEg4UJ73909nfsVynnzj9gw5jlv69mmXY1HVqlFybFh23rTLsaTmyFFyHL/8/GmXY2Hligw5LNPHCY0XTekztCEYg5Qdp613r95QJo2kbdPal2BLSx93v9bOw9t6aI+lAFhWFeScVRWc3lhBJGASDviYVxqiJlK8q8QCvL7vqVFumae23YGBQWqcVrxhmIR8YSrC8zzFHnYVvc9T8P4IQV84JzdTwBdiee16tre+AMDyuvXTrmzAbXVrOYpfjnUNp0/p+ABoQ5CVRCpOe19zocUoChK2TWtfnJa+OA+/0clD23p4eX8McMM9z1tdyTmrKlhRE8JRUBEKsKA8RGlwasPbppKBZJS23iZa+5poy/I5O45DJFg5pNCzKXq/FZrSXuLyuvXs63qDZDLJ8tr1U1buocoBFIUcuj4y5UglbdY2nDbl5WtDMIJEsp/26OzfVWy8HbkGlX93f4JXDkR5+I1uHt3RQzThTgBbu6CEc1ZVctKyMoI+E6WgOov/v1hwlEN37CCtvU209TXRO9AxdC/oi2S4d0zD4uSVF097y88yfayuP5F9+/YVLFY9XY7B40LLoesjU46Wfe1TPocAtCHIYCAZpTO6n/HCzWYDg4u9GQacckQlIZ9JImXTGnWVf0tfgr/u7OWBrV3s6HDXAqou8XH+0VWcvaqCheUBHAU+k3H9/4UknozR1tdMa+8e2vv2knLcAWzTsKgpXURd6RJqyxoIByrY3vJCwbv/4Iaudh2IF+TZI+UoBnR9ZDKvfCmxg/lR2doQePQn++iM7sdg9s8RSF/s7ZsP7eLd66vpi6d4raWfB7Z289TuXpK2wjLgLUtKOWdVJRsaIlimga0UQZ9VdP5/pRy6+ltp622irbeJnoHhAeiQv5T6ykZqSxdTXbpwVIuqWLr/Gk2h0IYAd1exrtjBOTFRbORG6TdvPEhrNM7fdvdx0NsYtaEiwNmrKjhzRQVVJe5XxHYUpQF/Ufn/46l+2nubae1ror2vmaTtGjfDMKmOLKSubDG1pYuJBCvH9ecXS/dfoykUc/5bP7ir2FwJD73yT9uIp+2UnrQVf3y1k6DP4KyVFZyzqoI180owDAOFu5F4tvj/qWIyC4sppej2Wv2tfU309A9vqh7yR5hfvpy6ssVURxbiswKTkqNYuv8aTSGY04agd6CD3v72OdET6OxP0NwZJZpl391lVUG+dcESwt76Praj8JkwL8/+/1wWFkukBmjra3ZdPn3NJO0BwJ2AUxWpp650MbVliykNVs0ZY67RTDVz1hD09LfTN9Ax641APGmzq7OPvniKZ/b0sa0tc4ejgGXwpbMWEQ5Y2EpR4nfj/2unwf+fbUavUoqegTa31d/bRHd/K4OzRoO+MIuqBHWli6kuXYR/kq1+jUaTnTlpCLpjrUTjXbPaCDhK0dQZpT2WoC9uc+PfDvLYjh78lsExC8O8tM+dC3Dx0TXURfxEAj7qy0umzf8/ckbvjtaX6O3voCt2kITtGisDg6rwfGo9X39ZqFq3+jWaPDDnDMFc2FWspa+ffd2uMn12Ty/XP3WArn4bURfik6fWM7/Uz0fvdMNH//nNC1hWE5n2+P/X9j6RMaNXKYeW3l0EfCUsrFxFXVkDNaUN+K3iiUzSaGYrc8oQRAe6iCV6Z60R6Isn2dMZYyBlE024vYBHt7u9gMuOr+Pv11ZjmQaOgo+dVM+iihCr5k1fzHzKTtDSs5v93dtoj+4ddb8qvIA3LX+HbvVrNNPMnDIESqkx1kSf2SRtm92dMbr7E1imwXNNvVz/5AE6+21W1ob41Kn1LKlyW9a2o5hXFuIjJ0zP2v+2k6Ktr4n9Xdtp7d0z1AsoDVYRjXdlzOhd23CaNgIaTQGYU4ZgtqEU7OuJcbB3ANOA/qTDjX87yCPbe/CZBh/aUMe71rm9gEEaa8uoLMnvIKtSDh3R/ezv2sbBnl1Ds3ojgQoWVK6gvqKRSLCCbQc3FsWMXo1mrqMNwQylIxanuSuKrcA04Nk9fVz/5AE6+lOsrHXHApZ6vQBHuZuyr6gtI+DLz1jAYIz//u5tHOjeQSLljlGEfBEaqldTX9FIWagmo8VfLAuLaTRzHW0IZhj9yRR7OqL0JW0sA6Jxmx8/c5CHt/XgM+GDG2r5h3U1Q70A24HaSICl1aUECDY8AAAgAElEQVR5kadvoIP93dvZ37V9KBTUbwVZXL2G+opGKsMLxnT3FMvCYhrNXEf/+mYItqNo6nLDQS0DLAOea+rjB08eoCOWYkVNiE++tZ5lVcNRNg6wvDZCdcnURt70J3pd5d+9nT5vJU/L9FFfsYL6ykZqShswcxyQL5aFxTSauYw2BDOAg7397O9xXS2WAX1xm5uebeHBN7rxmfCB42r5h6Nr8Hm9AAUELJOVU+gKiqf6Odi9g/3d2+mKHQTcNX3mlS1lQWUj88qW6la9RjND0b/cIqZnIEFTV4x4yh5a5uF5rxfQHkvRWBPkU6fWs6w6NJTHVoracHBCV1BLz25g/DV2UnaCgz272N+9nY6+4d3aqiMLqa9oZH7Fch3nr9HMArQhKEISts3ujig9AyksE0zDIJqwuemZFh7wegHvP66Wi9N6AeAOCi+rKp1weejBNX4AakoXZbTkxwr3LC+po76ikQUVRxDyR/Lw1hqNplBoQ1BEKAV7e6K09MUxActzs29sdnsBbdEUR1QH+dRb61me1gtQuJvGr6ktJ+if2BU0co2fI+qOpSO6jwNd2znYs3Nor95IsNJT/m64p0ajmZ1oQ1AktEfjNHdHcRRDW+PEEu5YwP1bu7EMeN+xtfzj+sxegK0U1SVBllWXkstcrFFr/LS8yJ72V4fW8g/5IzRUr6G+YoVe20ejmSNoQ1BgYokUezqjRL1w0EG1+8LeKD94Yj+tXi/gk6fWc0RNKCOvAyytjFBbGhpV7lhs2f905ho/KFJ20gv3XEFleL5W/hrNHCOvhkAIcS7wfcACbpJSfnPE/aXAT4E6oAN4v5SyOZ8yFQu2o9jTFaUjGscyDSxP98YSNv/3bAv3eb2AS4+p4d3ra/FbmcrZMg1EbRkl/tw/QqUUA8m+UddrShdx5MJTDut9NBrNzCVvq68JISzgh8B5wJHApUKII0ck+zZwi5TyaOBq4Np8yVNMdA6k2LSvc2htoEFe2hvl47/fyX1bu1lWFeS6i5bxvuPqMoyAraAs6GftgqpJGYGUneCV5kfp9eL+BzENizULTzr8l9JoNDOWfPYI3gxsk1LuABBC3Aq8E3gtLc2RwKe940eAP+RRnqLgzs0HeX13PxfUDF+LJW1++mwrf5FdmOP0AhylWFIZoW4SriBwN+HZ1PQQsUQ3FSXzqCipY0/Hq4Be40ej0eTXECwCmtLOm4ETRqTZBLwL133090CZEKJGSjnuJrabN28+JIHiTpSkih5S3qmgO27ztfu6MIAja5rwWwZb2lPc8mqcjgHFolKTD60NsqQ8zsH9w8s0K6UwDYPFZQE6Y+105vg8pRS9zj467O0oFBVmA1Wp5ahe8OEak1RnhK1dW6f+ZSfJ1q2Fl6FY0HWRia6PYQJGhI0bN055uYUeLP4scL0Q4jLgcWAvMHpT3RGsXbuWYHDyE5n6+jvpjXdMnDAPJG2bL96zjfZ+d1LW461B+hIO927pwzTgPetruOSY0b0AW0FFyM8RNaWT2js4acd5de9fae/Zid8Ksq7hdOrKlgzdr+4pAYpj0/atW7eyatWqQotRFOi6yETXRya73tjLhg0bJp0vHo+P24DOpyHYCyxOO2/wrg0hpdyH2yNACFEK/IOUsiuPMhUERyke2dbGHa8MG6HfveweL61yZwevqB3t7rGVYnFFmHllJZN6XleshZebHqI/2UdVeAFHLz5z1CSwYjAAGo2mOMinIXgOWCmEWI5rAC4B3pueQAhRC3RIKR3gC7gRRLOON1p7+N+nD5CwVcb1heV+vnfRUvzW6DF7A1gzr4JwYHJRQbvbX2HrgWdRKBrrjuOIecfmvACcRqOZm+RNQ0gpU8AVwH3A68BtUspXhRBXCyEu8pKdDkghxFZgPnBNvuQpFLs7+ogmsnu7FlUERhkBW0E44GPdwqpJGYFEaoAX99yPPPAMfl+I45edz4r5G7QR0Gg0E5LXMQIp5T3APSOuXZV2fDtwez5lKCQHevtp85aNPnVZOc81DQ9UByyDf33L/Iz0toJFFSUsmKQrqDN6gJebHmYgFaUmsoh1i08n6AtPyTtoNJphlFLZrqb9nZF4RKpseT2MoUQjTr0jQ41IOLUUerB41tLVn2BvVwzLNGjqinPjMwcxGP6yXHx0DQvKhreMNAwQdeWUTsoV5LCjdRPbW9wogpXz38Ty2vV6ZvAMw1EOSjlDn9twL87wlg1J/zyHp58P779tpC0vYqTd846N9NyZZRnpxyOeNeb+3uN+vbLfPNS9wv1GhLJgjvtrT/oRuWcwshy5VWxgjKzH4Q9o+HMw0nO6n+9w8Icx4p/Rcg1eO2D05izzZNCGIA/EEil2dPRhmQY9AzZXP9BMNOHwiVMWcOtL7dh2iovXuV9uR0Fp0EdjTVnG5LKJiCdjvNL8KO3RvYR8EY5efCZVkQX5eiXNIaCUQikHUGCYmIaJafqwDAvL8GGaFqZp4TeD+HwBLMPigNXL/IrlhRa9aAiaEUpLqgotRtGQr0aeNgRTTNK22dragwkkbcU3Hm5mf2+S96yv4exVlZSHLNrb2wn4TBwF9eUl1JdPzhXU3reXl5sfIZHqp65sCWsXnUbAN7lJZprDY1DJK9yWnWFaWIaFaVhYps9T9D58lh+/FcQ0LN1T0xQt2hBMIUqBbO3xjhU3PHWAzQf6OXlZGe87rhaAE5aU0Wx2A7CytpSyUGDM8kbiKIftLS+wo/VFDMNELHgLS2vWagUzxQwpeQNMDEzTh2maWLjK3TLdFr3PCuKz/FrJa2Y82hBMIW+09ZDyQkTv3NzBA290s6ImxKfeWp8xGcwyYN2CSqwsYaNjMZDs4+WmR+iMHaDEX8b6xW+jIlw35e8wF1FKYZgmJb6I57rx4fcF8JkBTHNqtvrUaIoZbQimiN0dffTFk5iGwdO7e/n5c63UhH18+exFhHzDCt8wYGl5cFJGoLV3D680P0rSjjO/fDlHLXorfiv3noQmO4MRIKXBSspKqjF0qK1mjqINwRRwsLefNm856e3tA3z7sX0EfAZXnd1ATdg/lE7hRgY19bXlVK7j2LzR8jy72l7GNCyOXHgyDVVrtBtiCnCUQ0mgjIpQLZalfwaauY3+BRwmXf0Jmr0w0fZYkqsfaCaRUnzxbYtorMncVL6xJvf9A/oTvWxqepju/hbCgQrWL34b5SU1E2fUjItSDgFfmMpwLT5r8utVaTSzEW0IDoNYIsVOL0x0IOXwnw/upT2W4rLj6zhxadlQOlvBwvIwlSW5uXMOdO/k1b2Pk3IS1Fes4MiFp+Cz/BNn1IyJUg4+K0BFSR1Bv55sp9Gkow3BIZKyHd5o7cXAXVTuusf380bbAGetrOAf1g1PgFFAVYk/pxBR20khDzxDU8drWIaPtYtOY2HlSu0KOgyUcjANHxXhOsJBve+CRpMNbQgOAaVgS2vP0JTxX73QxpO7elm7oISPn7QgQ3EHLZMjasrGKmqIaLyLTU0P0zvQTmmwivWL30ZpSE+kOVSUUhgGlIVqKA1VaWOq0YyDNgSHgBsm6gDwyPZufrupnQVlfr5w5qJR+wmsqstshbb07CbmZO67s69rG6/tewLbSdJQtZrV9SdimfqjOVQUinCwnPKSWr3onkaTA1rbTJI9HX1EEykM4LWDMb7/1wNEAiZfObuBitBwdTrA6rpyfGlhoraTYsv+p0mmktjOmwB4ff9T7O2UWKafoxvOpL6ycZrfaPbgKIeQP0JFSZ0eU9FoJoE2BJOgpbef1lgcyzA42Jvgmof24ijF589oYHHlcASKrRTLa0pHLSO9s3UT/Ul30Sh54G90RPcTjXdRHqrl6MVnEglWTOv7zBYcZRPwlVBRUqeX2tBoDgFtCHKkeyBBkxcmGkvYfO2BZroHbD524nyOXTS8+5etoL4sTHVJZmhiLNHDzrZNQ+dNHa8DsKTmKMT8E/QM1kNAofAZfirD8ykJlBZaHI1mxqINQQ70J1Nsb3PDRG1H8V+P7mNPV4ILj6zi/DXDA7oKd3/hhRWjI4S27H8aR2VuUFMeqmVN/Un5Fn/W4Q4EG5SHaokEK/RAsEZzmGhDMAEp20G29DC4QvRNz7awsTnKhoYI//zmeRlpA5ZJYw4RQoPoePbJMbQkRKiSspBeEkKjmSq0IRiH9NVEAe55vZO7X+tkSWWAK09fOGr/AFFXzliN04qSOlp79wydm4bF6voT8yL3bMRRDuFAGRXhOkxDu9E0mqkk5yaVEOJtQogrvOP5QohV+ROrONjW1kPSCxN9cW+UH/3tIBUhi6vObiAcGFZGjlKsGhEhlM7Bnl1sa3khQ4Etr1tPOKAnOE2Eoxz8Voj55UuoiizQRkCjyQM5GQIhxOeBrwCf8C75gZ/mS6hiYE9nlL5ECoCmrjjffGQvpmHwpbctythi0nZgWfXoCKFBOmMHebnpYSzT4vhl51PiL8NHiOW166flPWYqSjlYpo/a0kXUli3S6wJpNHkk1x7BpcDbgD4AKWUzMGubs619A7RGBzCA7oHU8FaTpy5gzfxhv76jYH55kOpwdiXVF+/ixd33oZTD+sVnURVZwOr6E6nxrdATxsbAXRLCpDI8n3nlS/U4ikYzDeRqCPqllMkR11TWlDOcoTBRwyBpK659eO/QVpNnNA7H+SugLOijoSKStZyBZJSNu+4lacc5atFbqStbDMC88qWETb2K6EiUUigUZaEa5pUv0+sCaTTTSK7N0iYhxCmAEkKYwBeBV/MnVmHoT6bY0d6HabiK6YdZtpocxG+ZrKjNrqxSdoIXdv+FgWQfK+Ydz6KqWT+ccsgMGgC9JIRGUzhyNQT/DtwCrAViwF+B9+VLqEKQsh22tvYwGPRzxysdPPhGNytrR281CSDqyrJGCDmOzYt7HqB3oIPF1Ws4ou6Y/As/A3GUjc/0UxIoI2LUUhmeN3EmjUaTFyY0BF4PYJ6U8hwhRBgwpZR9+Rdt+hgME/XC1Hl6dy83P99KbcTHl89qyNhq0lGKVfMq8Fujo1eUUmze+zgd0X3MK1vKmvqT9GSnNJRywICQr5RIsGLI/2+auwssmUYzt5nQEEgpHSHEL4GjpZSxaZBp2tne3kvCdjAgY6vJL5/VQHU4bSE5BUsqI5SOESG09eCz7O/eRmXJPI5efKae8OThKIeAFXJb/8FyXS8aTZGR6y9ymxBiWT4FKRRNXVF6BpIYkLHV5GdPW5ix1aSjoK40SG1p9kXNdrdvZlfby0QCFRy79O1zPipIKQcDg5JAGfPLl1FXvpjSUKU2AhpNEZKrtioDXhZCPIEXQgogpXx3XqSaJlr7BmjpG8AyMrea/PCbMreaBCgN+lhcmT1C6ED3Drbsf5qAr4QNy86bsytguktAKEL+TNePRqMpbnI1BL/0/swa0sNER241+a611RlpLdNg5RgRQh3R/bzc/AiW6WfD0vMoCeS+1tBswVY2wSHXT4Vu9Ws0M4ycDIGU8uZ8CzKdDCRtdnphojD+VpMw9hpCvQMdvLj7flCKY5eeTXnJ3Jkf4E78sggFIpQGK/XMX41mBpOTIRBC1ALX484uBngA+ISUsjVfguUL23aQLd1D549sc7earC/z88UzGzK2mnQUrKorI+AbHSE0kOzjhV1/IeUkWNdwBjWli6ZF/kIy7PqJUBIo13sAaDSzhFz78DcCW4FjgGOBN7xrMwpHKTdM1Dt/7WCM7z/hbjV51dkNlIeGFb6tFIsrw5QGR295mLTjbNz1FwZSUVbNfzMLK1dM0xsUBsdxY/7LQzUsqGykunShNgIazSwi1zGCRinlP6Sdf0UI8dJEmYQQ5wLfByzgJinlN0fcXwLcDFR6aT4vpbwnR5kmzf7eGHEvTPRAb4L/9Laa/MKIrSYVUBcOUpclQsh2Ury4+wH64p0sqTmKZbVH50vcgqKUg2FahHwRykLa9aPRzGZy7RGYQoihqZ/e8bh5hRAW8EPgPOBI4FIhxJEjkn0JuE1KeSxwCXBDroJPlrtfbeKRbW0YQDRhc/UDzfQM2PzbifM5ZlFmNFAk4GNJ9egWr1KKV5ofpTO2n/nly1m94C2zasKYUgqlHAJWCVWRehaUL6cqMl8bAY1mlpNrj+DbwItCiD975+cDn58gz5uBbVLKHQBCiFuBdwKvpaVRDK9iWgHsy1GeSTGQtPnUH54nZaf47oWL+dYj7laTFx1ZxfmrqzLSWqbBitrRkT9KKbYc+BsHe3ZSFV7AuobTZ010jKMc/GaAkmAZkVCFXvNfo5ljGIPb/02EEOIo4Azv9BEp5biLzgkhLgbOlVL+s3f+AeAEKeUVaWnqgfuBKiACnCWl3DhWmRs3blwG7MxJ4DR+/HILN21uA2BZhcmuboe1tRYfOzaUsYaQUorlFUECWTaY6bab6LB34DfC1PuOwTJGjx3MRCwjSIDInJ8Ap9HMEZZv2LBh18iLuUYN1QFvDCp/IURACFE3BVFDlwI/l1J+RwhxIvALIcRaKaUzXqa1a9cSDObmrtjR3ssvb5ND57u6HRaWB7jq3KUjdhmDlbWllIUCo8rY17WNnc07CPoinHDERYc9ULp161ZWrSrsiqSOUtSVLSbgK7zbZ+PGjWzYsKHQYhQFui4y0fWRyaHWRzweZ/PmzWPez9W38ScyjYYfuHuCPHuBxWnnDd61dD4C3AYgpXwaCAG1TCGf/MNzDKTsjGt1EV+GERiMEMpmBNr79rJ572P4zAAblp07K6JlHOVQFqoqCiOg0WgKT66GIJi+4JyUMoqrtMfjOWClEGK5ECKAOxh814g0e/DmJggh1nhl5n1uQsCXOVegdowIoZ7+dl7c8wAAxy45m7JQ9ag0MxG/FZg176LRaA6fyWxeX5d2PGHUkJQyBVwB3Ae8jhsd9KoQ4mohxEVess8AlwshNgG/AS6TUk7pzmff+7s3EUqbEBawDP71LfOHziMBi6VZIoT6E728sPsv2E6SoxtOp7p04VSKVTAUDlWR0bOnNRrN3CXXEcL/AZ4UQtwCGMAHgGsnyuTNCbhnxLWr0o5fA07OWdpD4IiaMj535lFcff/LAFx8dM3Q5vOWYbCybvQaQonUABt3/4V4KsbqBSeyoKIxnyJOGwpFWbAGvw4H1Wg0aeTUI5BS/hS4HDfUsxS4Skr5s3wKNpVceeZalleXsrgixMXrXJeIAlbVlY/aecx2Ury4536i8S6W1R7N0tq1BZA4P/jMAGUl2iWk0WgyyTVq6FbgX4FngU247pwGKeW38yncVBHyW1z3d8ezt6udgC+Jo6CxtpSgPzNeXimHl5sepit2kAUVjaya/+YCSTz1KOVQHVlQaDE0Gk0RkusYgZBSdgMXAA8Bi4AP5k2qPHDhUYs5vbEW21E0VJRQMSJCSCnF6/ufpqV3N9WRhaxbdNqs8aMr5VBeUovPGh0VpdFoNLkagsHZU6cB90op+4FxY/2LEaWgNhJkXlnJqHs72zbR1PEaZaFqjl1yNqY5e2bX+n0hSkNVEyfUaDRzklwHi18TQtwLrAE+L4QYrUlnAPPKglSWjI4Q2tu5lTcOPkfIX8pxS8+dVS1npRRVYe0S0mg0Y5Nrj+BDuMtOn+HNIahm4rWGio6gNdrutfY28erex/FZQTYsPZeQP/t2lDMRpRzKw3X4rNmxHIZGo8kPue5Q1g/8Ie18L6NnCc84uvtb2dT0IIZhctySc2ad+yTgC1MarCi0GBqNpsiZHctnHgKxRA8v7LoP27E5evEZVM26iBpFVXj+xMk0Gs2cZ84sOdnU/hr9iShlJdUkUv1s3HUvCbufNfUnM798eaHFm1IcZVMVno+VxRWm0Wg0I5kTPYKUk+SZHX9iU9NDxFP9vLD7PmKJHo6oO4YlNSP3ypnZKKUI+UsJa5eQRqPJkTnRZHyl6VH64h0APLvjLmKJHhZWrmTFvOMLLFkeMAyqItolpNFocmfW9wh6B9rZvPexofNYoofK8AKOWvTWWTNhbBClHCrD8/QOYxqNZlLMekPwzPa7sZ1UxjWf6cOcJdtMDuK6hCKEA6O32dRoNJrxmF3aMEdmy17D6RiGQeWsi3zSaDTTwezTiCM4ofHCjP14TcNidf2JBZRo6nFdQvNnXS9Ho9FMD7Nec5SFali76LSh8+V16wkHRu9BMFNRShEKlM6KLTQ1Gk1hmPWGAGDd4tMpDVYTCVSyvHZ9ocWZUkzD1BPHNBrNYTEnwkd9pp8TjngH/YlohptopuPgUBNZOCvHPDQazfQxe7TiBCyuOZK+/k56vfkEMx2lFOFA+axaJE+j0RQG3ZScoVimRWW4rtBiaDSaWYA2BDMQN0pogXYJaTSaKUFrkhmGUopwsIKgf0buDaTRaIoQbQhmGJbpo6JEu4Q0Gs3UoQ3BDMJRDlWR+bNujSSNRlNYtCGYISjlUBqsJODTLiGNRjO1aEMwQ7AsP+UltYUWQ6PRzEK0IZgBOMqhKlyvXUIajSYvaENQ5DjKoSxUTcAXLLQoGo1mlqINQZHjtwKUhaoLLYZGo5nFaENQxCgU1ZEF2iWk0WjyijYERYpCURasxmdpl5BGo8kv2hAUKX4rQFmJdglpNJr8k9fVR4UQ5wLfByzgJinlN0fcvw44wzsNA/OklJX5lGkmoJRDVVhvO6nRaKaHvBkCIYQF/BA4G2gGnhNC3CWlfG0wjZTyU2np/x04Nl/yzBSUcigvqcVnBQotikajmSPk0zX0ZmCblHKHlDIB3Aq8c5z0lwK/yaM8MwK/L0hpqKrQYmg0mjlEPl1Di4CmtPNm4IRsCYUQS4HlwMO5FLx58+ZDEijuREmq6CHlnWq2bt2a9XqJUcMes3WapSk8GzduLLQIRYOui0x0fWSSj/oolh3KLgFul1LauSReu3YtweDko2mKZYeyrVu3smrVqoxrSjmUh+dRGqwokFSFY+PGjWzYsKHQYhQFui4y0fWRyaHWRzweH7cBnU/X0F5gcdp5g3ctG5cwx91CQX94ThoBjUZTePLZI3gOWCmEWI5rAC4B3jsykRBiNVAFPJ1HWYocRWV4fqGF0Gg0c5S89QiklCngCuA+4HXgNinlq0KIq4UQF6UlvQS4VUqp8iVLMaOUQ0XJfCyzWLx0Go1mrpFX7SOlvAe4Z8S1q0acfzWfMhQzSimC/gjhYFmhRdFoNHMYPbO4gBiGQVVEu4Q0Gk1h0YagQChlUxGeh2lYhRZFo9HMcbQhKABKKUKBUsIB7RLSaDSFRxuCAmAYJpV6LSGNRlMkaEMwzThKUWJUYBq66jUaTXGgtdE04oaK1mCZekE5jUZTPGhDME24oaJhvaCcRqMpOrQhmCZM06I6Ul9oMTQajWYU2hBMC4qa0oUYelxAo9EUIVoz5Rl3XKAOv957WKPRFCnaEOQRpRzCwXLCelVRjUZTxGhDkEd8VoCKknmFFkOj0WjGRRuCvKGojizEMIxCC6LRaDTjog1BHlBKURWpx2f5Cy2KRqPRTIg2BFOMQlEaqiTkjxRaFI1Go8kJbQimEKUUAStEeUltoUXRaDSanNGGYAoxDZPq0oWFFkOj0WgmhTYEU4SjHKpL6/VichqNZsYxazbKTaVSOI4zbppkMkUqOX6aQ8OhNFgNjkUikcgpR67p5grFUB+maeLzzZqfhEaTM7PiW9/b24tlWRP+iEOBCH7f1M/wNQ0Tn5X7iqKNjY1TLsNMpljqI5FI0N/fT1mZ3jBIM7eY8YYglUphWRbhcHjCtLZjYjtT67oxMPBZgUnNF0gmkwQCeinqQYqlPgKBALFYjFQqpXsGmjnFjHdoO45T0B+tz/LrSWOzCMuyJnQxajSzjRlvCA6VP7+2j3te33dYZVimX68oOsvQRl0zF5mT/d+BpM1n734JAzhzxXxCfmvSZZiGhWVOPp9Go9EUG3PSEHz70S3s6ogC8J1Ht/D/zj5qUvkNw8Ayh6uus7OTyy67DIC2tjZM06S6uhqA3/3udzn5v7/whS9w+eWXc8QRR4yZ5le/+hVlZWVcdNFFk5I3Gw8++CA/+MEPUEqRSqX48Ic/zD/+4z8edrkajWbmMecMwc72Pr7z6Jah828/uoX3bVjGsurcl4TwmZmDw1VVVfzxj38E4Ac/+AHhcJiPfOQjGXmUUiilMM3srqRrr712wue+733vy1nG8UgkEnz1q1/ljjvuYP78+SQSCfbu3XtYZU70fhqNpniZdYbgc3dv5PZNu8e8f7Cvn4HU8GDgQMrh2O/+hXmloTHzvGtdA9desB4An5n74PDu3bv56Ec/ypo1a3j99df52c9+xvXXX88rr7xCMpnkvPPO44orrgDg0ksv5aqrrmLlypW85S1v4ZJLLuHxxx+npKSEG264gZqaGq677jqqqqq47LLLuPTSS9mwYQN/+9vf6O3t5dprr+W4444jFotx5ZVXsn37dlasWEFzczPXXHMNa9asGZKrt7cXgMrKSsCNllm+fDkAra2tXHXVVTQ3N2MYBl//+tdZv349P/nJT4aM3Xve8x4+8IEPZH2/LVu2cMMNN5BIJFi6dCnf+MY3coro0mg0hUM33yaBZfowJzkusGPHDi677DLuuece5s+fz2c+8xl+9atf8cc//pGnnnqKbdu2jcrT29vLm970Ju666y6OOeYY7rjjjqxlK6W4/fbb+dznPscPf/hDAH75y19SW1vLPffcw8c+9jFef/31Uflqamo45ZRTOOOMM/jMZz7Dn/70p6FImauvvpqTTz6Zu+++mzvvvJPGxkY2bdrE3Xffze23386tt97Kr3/9a6SUo97P5/Pxk5/8hJ///Of8/ve/RwjBLbfcMqn60mg008+s6xF868INfOvCDVnv2U6Kba1dHPfd+4Z6BSGfyYufPndC15BpmBnjArmyZMkS1q1bN3T+5z//mdtuuw3HcWhpaWHbtm2sWLEiI08oFOK0004D4KijjuL555/PWvY555wDwNq1a4dcOxs3buTyy2zi8CYAABK8SURBVC8HYPXq1aPKHuSb3/wmW7Zs4emnn+bHP/4xTz/9NNdccw3PPvss3/3udwHw+XyUlpayceNGzjnnHEIht9d01lln8fzzz3PKKadkvN+LL77Itm3buOSSSwB3fsCGDdk/C41GUzzMOkMwEctrSvnM6au55sHXAPjs6asnNAIGBpZ5aHsLlJSUDB3v2rWLW265hZtvvpkFCxbw2c9+lng8PiqP3z/8LMuysG07a9mDg9CmaY6ZZjxWr17N6tWrecc73sH555/PNddcA0wuhDL9/ZRSnHrqqfz3f//3pGXRaDSFY066hgaV//LqCJ85ffWE6a0pmjTW19dHJBIhEonQ0tLCE088cdhljuS4447j3nvvBUBKyfbt27PK8dxzzw2dv/766yxc6K6aesIJJ3DrrbcCYNs2fX19HH/88Tz44IMMDAwQjUZ56KGHOP7440eVe+yxx/Lcc8/R1NQEQCwWY9euXVP9ihqNZoqZcz0CgJDf4tsXHoNhMOEcAsv0TdmKokcddRSNjY28613voqGhgeOOO25Kyk3n/e9/P1deeSXnn38+K1asoLGxkdLS0ow0SiluvPFGvvSlLxEKhQiHw3zjG98A4Mtf/jJf/vKX+e1vf4tlWVx99dUcffTRXHDBBVx88cWAO7AthGD37sxB+draWq655ho++clPkkwmAfj0pz/NsmXLpvw9NRrN1GEopfJWuBDiXOD7gAXcJKX8ZpY0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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_energy\r\n",
    "from yellowbrick.model_selection import validation_curve\r\n",
    "\r\n",
    "from sklearn.tree import DecisionTreeRegressor\r\n",
    "\r\n",
    "# Load a regression dataset\r\n",
    "X, y = load_energy()\r\n",
    "\r\n",
    "viz = validation_curve(\r\n",
    "    DecisionTreeRegressor(), X, y, param_name=\"max_depth\",\r\n",
    "    param_range=np.arange(1, 11), cv=10, scoring=\"r2\",\r\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 2 学习曲线\n",
    "学习曲线显示了针对具有不同数量训练样本的估计量，训练分数与交叉验证的测试分数之间的关系。该可视化通常用于显示两件事：\n",
    "\n",
    "估算器可从更多数据中受益多少（例如，我们是否有“足够的数据”，或者如果以在线方式使用，估算器会变得更好）。\n",
    "\n",
    "如果估算器对因方差引起的误差与因偏差引起的误差更敏感。\n",
    "\n",
    "\n",
    "\n",
    "|可视化器|LearningCurve|\n",
    "|-|-|\n",
    "|快速使用方法|learning_curve()|\n",
    "|模型|分类，回归，聚类|\n",
    "|工作流程|选型|\n",
    "\n",
    "如果训练和交叉验证的分数随着更多数据的增加而聚合在一起（如左图所示），那么模型可能不会从更多的数据中获益。如果训练得分远大于验证得分，那么模型可能需要更多的训练实例，以便更有效地推广。\n",
    "曲线用平均得分绘制，但是交叉验证过程中的可变性用阴影区域表示，所有交叉验证的平均值上下都有一个标准偏差。如果模型由于偏差而出现误差，那么在训练分数曲线附近可能会有更多的变化。如果模型由于方差而出现误差，那么在交叉验证得分附近会有更多的可变性。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 2.1 分类\n",
    "在下面的示例中，我们将展示如何可视化分类模型的学习曲线。\n",
    "在加载DataFrame并执行分类编码之后，我们创建了一个StratifiedKFold交叉验证策略，以确保每个拆分中的所有类都以相同的比例表示。\n",
    "然后，我们使用F1_加权评分度量(而不是默认度量准确度)来拟合可视化工具，以更好地了解分类器中的精确度和召回率之间的关系。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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47FVW7j9lTWsq23miKpSvn3mXBbNm7Lf5ysvL+fZZ58F4J577qGoqIjPfe5zneo4joPjOOgF/mZuu+22Xq/z6U9/er/bmEsqleKmm27iqaeeoqqqilQqxY4dO3o/sAd6u7/hjBIID5+mYdkOWxvb2NLQxmElYaaOihLyq0ekODR4bNUWPv1IRzqd1buastsHIhL52LZtG1/+8peZPXs27733Hg899BD33nsva9euJZlMct5553H11VcDcOmll3LDDTcwY8YMTjjhBBYtWsRrr71GJBLh5z//OaNGjeInP/kJ5eXlLF68mEsvvZQFCxbw5ptv0traym233cb8+fOJxWJcf/31bNq0ienTp1NTU8Mtt9zC7Nmzs+3KhHKWlZUBbvTOlCnuve/Zs4cbbriBmpoaNE3jhz/8IUcffTT3339/VgQ/9alP8ZnPfCbv/a1fv56f//znpFIpJk2axK233josI8xyUb1fF3RNAw3q2hLsaI4xqijI5IooFRGVFkAxuFz3fDVPvrut4P6dLbG85Ysf/SdL/pR/aY1Ljp7EnR9ZsF/t2bx5M3fccQdHHnkkANdeey1lZWWYpslnP/tZzj33XKZPn97pmNbWVo499li+/OUv87//+7889dRTfPGLX+x2bsdxePLJJ3nllVf42c9+xq9+9SseeeQRKisrueeee1i/fj0f+9jHuh03atQoTj75ZE4//XROPPFETj/9dM4//3x0XWfp0qWcdNJJXH755ZimSSKR4N133+X555/nySefxDRNPvGJT3DccccRCoU63V99fT33338/v/71rwmHw/ziF7/g4Ycf5ktf+tJ+PbtDBSUQPeA3dFqSaapr6okGfUwoLUKtn6EYqqSt/L+baWtgZmEffvjhWXEA+NOf/pTtaOvq6ti4cWM3gQiFQpx66qm0t7czZ84cVq5cmffc55xzDgBz587Nmoiqq6v5whe+AMCsWbO6nTvD7bffzvr161m+fDm//OUvWb58Obfccgv/+te/+PGPfwyAz+cjGo1SXV3NOeecQyjk+h/POussVq5cycknn9zp/latWsXGjRtZtGgR4M5VWLBg/4T1UEIJRB/wGzpJ02bDnhY21cUormtm2qhifMbIs0kqBo87P7Kgx7f9Y+56ntW7mrqVH3VYOau+eWG/tyccDme/b926lYcffpgnnniCkpISvvnNb5JM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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\r\n",
    "\r\n",
    "from sklearn.model_selection import StratifiedKFold\r\n",
    "from sklearn.naive_bayes import MultinomialNB\r\n",
    "from sklearn.preprocessing import OneHotEncoder, LabelEncoder\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_game\r\n",
    "from yellowbrick.model_selection import LearningCurve\r\n",
    "\r\n",
    "# Load a classification dataset\r\n",
    "X, y = load_game()\r\n",
    "\r\n",
    "# Encode the categorical data\r\n",
    "X = OneHotEncoder().fit_transform(X)\r\n",
    "y = LabelEncoder().fit_transform(y)\r\n",
    "\r\n",
    "# Create the learning curve visualizer\r\n",
    "cv = StratifiedKFold(n_splits=12)\r\n",
    "sizes = np.linspace(0.3, 1.0, 10)\r\n",
    "\r\n",
    "# Instantiate the classification model and visualizer\r\n",
    "model = MultinomialNB()\r\n",
    "visualizer = LearningCurve(\r\n",
    "    model, cv=cv, scoring='f1_weighted', train_sizes=sizes, n_jobs=4\r\n",
    ")\r\n",
    "\r\n",
    "visualizer.fit(X, y)        # Fit the data to the visualizer\r\n",
    "visualizer.show();      "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "这条学习曲线显示了高测试可变性和低分数，高达30000个实例，然而在这个水平之后，模型开始收敛到F1分数0.6左右。我们可以看到训练和测试的分数还没有收敛，所以这个模型可能会从更多的训练数据中获益。最后，该模型主要受方差误差的影响（测试数据的CV分数比训练数据的变异性更大），因此模型有可能过度拟合。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 2.2 回归\n",
    "为回归建立学习曲线非常简单，而且非常相似。在下面的示例中，在加载数据并选择目标之后，我们根据确定系数或R2分数探索学习曲线分数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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un358uUsXLiQIUOGUFFRwTPPPMMTTzyB4zhceOGFHHHEEWzcuJHhw4fzu9+5nb+qq6vZs2cPr7zyCi+99BKWZbFvX/sgd8YZZ3Deeedx/fXXEwgEWLRoEffccw8AZWVlPPHEE1iWxZNPPsmDDz7ItddemzSf1113HTfccAOHH344d9xxR2z90KFD+cMf/hB74/tHP/oRzzzzDFdddVUsMIAbFKPuvfdepk2bxq9//WsWL17MNddcE5vTYv369TzyyCPU1NRwxhlncPHFF7caDHHKlCmUlpZy8sknc/TRR3Pqqady0kknAfDjH/+Y73znO5x66qk0NjZi2zZ///vfWblyJc8//zx79uzhggsuiI1HFS37sWPHsmbNGl588UUeffRRgsEgN910EwsXLuS8887r+D9YqT6sXwaKw8efmfTuvzncyN+W/oqquu3ttg0uPIB5s69IS55mzJjB2LFjqa2tpby8nFNOOSV2t3zqqaeyZMkSjjvuOO644w7uuusu5s6dy5w5cwiHw4RCIRYsWMDcuXM58cQT26VdWlrK5MmTWbx4MaWlpQQCAQ4++GDArcK58sor2bFjB01NTYwZMyZpHvft2xebCwPcdo63334bcKttbr75ZlauXInP50tpsL/y8nLuvfdeAI4++miqqqqoqakB4NhjjyUvL48hQ4YwZMgQdu3axQEHtHSi8/v9PPjggyxbtozFixdz22238emnn3LJJZewbds2Tj31VIBYz7fy8nLOOuss/H4/paWlHH744Sxbtozi4uJY2QMsXryYioqK2LhVDQ0NDB06tNPvolRf1i8DRWcOGX0C//zsyXbrZ4yd2+00J0+ezMsvv5x0eyqzvI0fP55nnnmGf/zjH/zyl7/kqKOO4vLLL+epp55i8eLFvPTSSzz88MMJJwM666yzWLRoEUOHDo1VOwHccsstzJ8/n5NPPpn333+f++67r1vf749//COlpaU8//zz2LbNzJkzu5VOVHzXU7/fn7DtxrIsZs6cycyZM/nCF77AggULuOSSS7p8rviydxyHL33pS1x11VXdy7hSfZAOM96Gg8OEYbM43lzM4MIDsCwfgwsP4HhzcbcbsgGOOuoompqaePzxlncLV65cmXDSoeiw3fX19dTV1fHqq68yZ84ctm3bRkFBAfPmzePSSy9l+fLl1NbWUl1dzQknnMCCBQti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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import RidgeCV\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_energy\r\n",
    "from yellowbrick.model_selection import LearningCurve\r\n",
    "\r\n",
    "# Load a regression dataset\r\n",
    "X, y = load_energy()\r\n",
    "\r\n",
    "# Instantiate the regression model and visualizer\r\n",
    "model = RidgeCV()\r\n",
    "visualizer = LearningCurve(model, scoring='r2')\r\n",
    "\r\n",
    "visualizer.fit(X, y)        # Fit the data to the visualizer\r\n",
    "visualizer.show();           # Finalize and render the figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "该学习曲线显示出非常高的可变性，并且得分较低，直到大约350个实例为止。显然，该模型可以从更多数据中受益，因为它的得分很高。潜在地，随着更多的数据和更大的正则化alpha值，该模型在测试数据中的可变性将大大降低"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 2.3 聚类\r\n",
    "学习曲线也适用于聚类模型，并且可以使用指定聚类的形状或组织的度量，例如轮廓分数或密度分数。如果预先知道membership，则可以使用rand得分来比较聚类性能，如下所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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E0VVc1UoFIozAE2bUCuOUSgFoVAoFIqsKPs1RTQexuUoLbQYCkVRMTAwwLXXXgtAb28vuq5TXV0NwK9+9asJ+d4///nPc/3117Nw4cJx9/nZz35GWVkZb3rTm05b5qeeeoq77roL0zRJJBJcd911vP3tbz/t856JKAWRotvfhsdVQaW7Hl1ThpVievLAiwf56tM72d01xNn1FXzukhVsOrdp0uerqqri4YcfBuCuu+7C7XbzgQ98YNQ+pmlimia6nv13c9ttt530Ou9617smLWMmsViMm2++mV//+tfU19cTi8U4fPj0MuRPNr6ZjFIQKWyajUgsSHe8lUpPPSUOT6FFUihOiQdePMi77j9WTmfH0cH08ukoiWy0tbXx4Q9/mLPOOotXXnmFH//4x9x9993s2rWLaDTK5Zdfzg033ADANddcw0033cSSJUs4//zz2bRpE3/+85/xeDx897vfpaamhm9961tUVVVx7bXXcs0117B27Vqee+45/H4/t912G2vWrCEUCnHjjTeyf/9+Fi9eTEdHB7feeitnnXVWWq6RVM7KykrAyt5parLG3tPTw0033URHRweapvGf//mfrF69mnvuuSetBP/pn/6J97znPVnHt2fPHr773e8Si8VobGzkK1/5SjrDbKaiFEQGmqZhYtIfOEKJ00Olu0FZE4qi4QtP7ODh3UfG3X5kOJR1/bU//z82/z57K4y3rW7kjqsmNwv4wIED3H777axcuRKAT33qU1RWVpJIJHjve9/LG97wBhYvXjzqGL/fz/r16/nwhz/Mf/3Xf/HrX/+aD37wg8ed2zRNHnzwQZ5++mm+853v8MMf/pD7778fn8/HXXfdxZ49e3jLW95y3HE1NTVceOGFbNy4kQsuuICNGzdyxRVXoOs6t9xyC69+9at597vfTSKRIBKJsH37dh599FEefPBBEokEb3/729mwYQMlJSWjxtfX18c999zDT37yE0pLS/ne977Hfffdx4c+9KFJ3bvpglIQWdA0nUgsRFf8IJXuekqd3kKLpFCclHgye2+XePLUUhsnyvz589PKAeD3v/99+kHb3d3Nvn37jlMQJSUlXHzxxQSDQZYvX862bduynvt1r3sdYJXPGXERNTc3c/311wOwbNmy4849wle/+lX27NnDli1b+MEPfsCWLVu49dZbeeGFF/jmN78JgN1ux+v10tzczOte9zpKSkoAuPTSS9m2bRsXXnjhqPG9+OKL7Nu3j02bNgHW3IfpWl7jVFAKYhxGUsIGgkcJx5U1oSg8X379Sr711vPH3X7O1x9lx9HB49avmlXFi59+Y87lKS09ltTR2trKfffdx69+9SvKy8v59Kc/TTR6XHsBHA5H+m+bzUYymX3+60jwW9f1cfc5EcuWLWPZsmW88Y1v5IorruDWW60pVaeS6pk5PtM0ueiii/ja1752yrJMZ9QT7ySkrYmhg4Ripz5VXaGYKj53SfY6lzdesjzv1w4EAng8HrxeL93d3fztb8e1Fjht1qxZw+OPPw6AlJL9+/dnlWPr1q3p5VdeeYXZs2cDcN555/HAAw8AkEwmCQQCrFu3jqeeeopIJEIwGOTpp59m3bp1x5333HPPZevWrbS3WwWqQ6EQra2tuR5i0aEsiAkw8tYxGDxKJOan0qOsCUXxMRKIvv3pXezuGuTs+kpuvGR5zgPU2Vi+fDmLFi3i8ssvZ/bs2axZsybn13j3u9/NjTfeyBVXXMHixYtZtGgRXu9o969pmnz/+9/nC1/4AiUlJbjdbr7yla8A8MUvfpEvfvGL/OIXv8Bms3HLLbewatUqrrzySt72trcBVkBdCEFbW9uo8/p8Pm699VY+/vGPE4/HAfjkJz/JggULcj7OYmJG9KRubm5eABw8nXLfRwb2ok3goW+aJpqmUeGuw+0sGyvHjPFLzpSxTOdxjBTpG3G3BINBPJ6ZkV03mbEkEgmSySQul4vW1lbe//7388c//rHg5Uimy+cy9vsEo8p9N61du7Z17DHKgjhFjlkTncqaUCimkFAoxLXXXksikcA0TW655ZaCK4eZjrq7k0TTdCJxKzaRzZpQKBS5pby8nIceeqjQYpxRKAVxGmRaE+GYH9PMTzqhQqFQFALlG8kBmqYTjYcIGr2EoirTSaFQzAyUgsgRaWsi1Elf4AiGqfobKRSK6Y1SEDlmxJroHGpV1oRCoZjWKAWRBzRNQ+OYNZE0EoUWSaGYND09PXziE5/g0ksv5a1vfSvXX389Bw8ezOs1Ozo6+Id/+IfjOqBdffXVbN++fdzjHnroIW655RYAfv7zn/Pb3/4267nf+MYTzyzv6Ojg0UcfTS/v2LGDL3/5y6cyhHF58MEHueqqq7jqqqt44xvfyFNPPZWT8+YDFaTOIyPWRPdwKxWldbhd5YUWSTHDOdCznR3tf2Iw1E2lu46V8zaysHb1pM9nmiY33HADb37zm/nWt74FwJ49e+jr60tXSQVOudfxyZg7dy6zZ89m27ZtbNiwAYD9+/cTDAZZvXpi47nmmmsmff3Dhw/zu9/9jquuugqAlStXjqo7NVk6Ozv57//+b37zm99QVlZGMBikv7//tM6Z63ufiVIQeSZd0ynUSTjup9Jdj01Xt12Rew70bOev8ufp5YFQZ3p5skriueeew263j3rYLlu2DIDnn3+eO++8k/Lycg4ePMgTTzzBj3/8Y379618D8La3vY1rr72WUCjExz/+cTo7OzEMg4985CNcfPHFfP3rX+eZZ57BZrNx4YUXcuONN4669pVXXsnvf//7tIJ47LHHuPLKKwF45pln+N73vkc8HqeyspKvf/3r+Hy+Ucdn9q/YuXMnmzdvBuDVr351ep+Ojg4++9nPEg6HAWu29Zo1a/jGN77B/v37ufrqq3nLW97CWWedxY9+9CO+//3vMzg4yObNm2lvb6e0tJTPf/7znHvuudx1110cOXKEjo4Ojhw5wvve9z7e+973jpKpr68Pj8eTLhPu8XjSk+za2tr40pe+RH9/PzabjTvvvJN58+Zxxx138Oyzz6JpGh/+8Ie54oorst77hx9+mJ/+9KfE43FWr17Nl770JWw226Q+9xHUk2qK0DUbsUQkZU3U4nZVFFokxTRj++GnODz0yrjbQ7HhrOv/1vILmlsfz7ptgW8V65uuGPece/fuZfny8Ws57d69m0cffZR58+axc+dOHnroIX75y19imibveMc72LBhA+3t7dTV1fGDH/wAsEp+Dw4O8uSTT/KHP/wBTdMYHj5e9ssvv5w3v/nNfPGLX8Rut/PYY49x5513ArB27Vp++ctfomkav/rVr7j33nv53Oc+N66cn//857nppptYv349t99+e3p9TU0NP/7xj9Ozsz/5yU/y0EMP8alPfSqtEMBShiPcddddnH322Xz3u99ly5Yt3HTTTWl31MGDB7nvvvsIBAJcfvnlXHPNNaMKFC5btgyfz8cll1zCBRdcwGWXXcZrX/taAD796U/zwQ9+kMsuu4xoNIphGPzxj39kz549PPzwwwwMDPC2t70tXSsq897v37+fxx9/nJ///Oc4HA5uvvlmHn30Ud785jePe08mglIQU47GQKiLcDxAZWk9Npv6CBS5Ybx5OEYe5+esXLmSefPmAVZZk0svvTT9dnzZZZexbds2LrroIm6//Xa+9rWvsXHjRtatW4dhGLhcLjZv3szGjRt5zWtec9y5fT4fS5YsYcuWLfh8Pux2O0uXLgUsV80nPvEJenp6iMVizJ07d1wZh4eH030owIpjPPvss4DlnrnlllvYs2cPuq5PqABfc3Mzd911FwAXXHABQ0NDBAIBAC6++GKcTifV1dVUV1fT19dHQ0ND+libzca9997Ljh072LJlC7fddhu7du3iuuuuo6uri8suuwwgXTKoubmZK6+8EpvNhs/nY/369ezYsQOv1zvq3m/ZsoWdO3ema0pFIhFqampOOpaToZ5OBSBtTfiVNaGYOKvnXMqrll497vaH//5tBkKdx62vcjdw9ZqPT+qaS5Ys4Yknnhh3+0Q6qjU1NfHQQw/xl7/8hW9/+9ucf/75XHfddTz44INs2bKFP/zhD9x///3cd999xx175ZVX8thjj1FTU5N2LwF8+ctf5tprr+WSSy7h+eef5+67757U+H7yk5/g8/l4+OGHMQyDVatWTeo8I2TWObLZbCQSxyeoaJrGqlWrWLVqFa961avYvHkz11133SlfK/Pem6bJW97yFj71qU9NTvBxUFlMBUVjMNRNr/8wyaTKdFKcHivnbTyl9RPh/PPPJxaL8Ytf/CK9bs+ePVkb/YyUzg6Hw4RCIZ566inWrVtHV1cXpaWlXH311XzgAx9g9+7dhEIh/H4/F198MZs3b0ZKmfX6r3vd6/jLX/4yKv4Alpuqvr4eIGumUibl5eWUlZWlZc7MTvL7/dTW1qLrOg8//HC694TH4yEYDGY937p163jkkUcAy/VUWVl5XFXZ8ejq6mLXrl3p5T179jB79my8Xi8NDQ3pjKZYLEY4HGbdunU8/vjjJJNJ+vv72bZtW1YldsEFF/DEE0/Q19cHwODg4Gn34gZlQRQcTdOJJy1roqy0Fq+yJhSTZCQQvaP9TwyGu6ksPf0sJk3TuPvuu/nKV77CPffcg8vlYs6cOWzevJmurq5R+y5fvpy3vvWtvP3tbwesIPXZZ5/Ns88+yx133IGu69jtdm6++WaCweCopkLjxQ/Ky8s555xz6O3tTbtTAG644QY+9rGPUVFRwXnnnUdHR8cJx3HbbbexefNmNE0bFaR+5zvfyUc/+lF++9vfctFFF6XfyoUQ6LrOm970Jt761reO6nt9ww03sHnzZq666ipKS0v5j//4jwnfz0Qiwe233053dzcul4vq6ur08XfccQc33XQTd955Jw6HgzvvvJPLLruMF198kauvvhpN0/jMZz5DbW0tBw4cGHXexYsX8/GPf5z3v//9GIaBw+HgpptuYs6cOROWLRuq3HeKiZb7PhEtLS1pH+lkME0Dp91NlbvwsYnpXCY7k+k8DlXue3owXcYymXLfysVURIxYE13+VgLRoUKLo1AoznCUgihCNDSGQ930+jtIJOOFFkehUMwAJuMtUgqiSLGsiSjd/jZlTZyh6LqeNQtGoZgMyWQSXT+1R74KUhc5I9ZEODZMlbsBu81x8oMUMwK73Z7OCLLZbMTj8bQfebqjxjJ1mKZJMpkkmUyeckkOZUFMAzRNJ5GM0T3cRiAyUGhxFFNIWVkZTqcTTdPYv39/ocXJGWosU4emaTidTsrKTr3rpbIgphGapjEc7iUcDyhr4gwi860vMwNluqPGUvwoC2KaoawJhUIxVeTVghBCvAG4E7AB90opvzpm+7eAkWmebqBOSlmZ2nYHcCWWEnsS+JiUcvpP2sgRo62Jeuy2mfkGo1AoCkfeFIQQwgZ8B7gM6AC2CiEekVLuHtlHSvmJjP0/Cpyb+vtVwKuBkTnlfwMuBv6cL3mnI5nWRHmpD29JVaFFUigUM4h8upg2APuklAeklDHgAWD8SmNwDTBSzN4ESgAn4AIcQNc4x53xaJrOcKSPHn87iWTxZlMoFIrpRT5dTHOA9ozlDuC8bDsKIRqBJuAZACnlFiHEn4CjgAbcLaUcvxB+itSU8UnhT3ZhNQo9PVpaWk77HKeDyQ5cmhenfvpT/5ubm3MgUeEpxDhM0yBhRkkSwzATmJiUaOXY9NNzBc6UzwTUWKYDxZLFtAl4UEqZBBBCLAbOAkaKvD8phLhISvnsiU4y3Wsx5QoTE4fNmcp0mtwDaTrXMMpkKsZhmibxZJRIPEgiGSWWjJI04mhoo75TpmnidpVTUVqb7jR4KsyUzwTUWIqFjFpMWcmngjgMzMtYnptal41NwL9mLL8FeE5KGQAQQjwOXACcUEEoLDQ0Esk43cNtlJXUUFZaXWiRZhSGmSQSDxGLh4kbERLJGIZpoGvH2jtm/j2CpmmEosNE4yEqPfW47KVTKbZCccrkU0FsBZYIIZqwFMMm4J1jdxJCLAOqgC0Zqw8B1wshbsNyMV0MfDuPss5INE3HH+0nHA9Q7Zm8NXGmE09ECKetgxhJIzbGOtCyKoRsaJqGYSbp83fgdlVM2ppQKKaCvCkIKWVCCHED8ARWmuuPpJS7hBC3ANuklI+kdt0EPDAmhfVB4LXADqyA9R+klI+iOGU0NJJGnG7/Icpc1cqaOAmGaRCNB4klwsSSUeLJKKZpoKGnH+QTVQYnQtN0QtEhovEQVZ56nMqaUBQheY1BSCkfAx4bs+6mMcs3ZzkuCfxLPmU709DQMqyJeuy2ycVqZhrxRIxw3E8iGSNuREkkYqBp6CnrwLIUTl8hZEPTdAwzSY+/gzJXFWWlNcqaUBQVxRKkVkwBx6yJ9jPSmjhmHUSIJSPEk1EMM4mO7Zh1oOdHGZwIXdMJRAcIJwJUuWfhtCvlrZg4oegw0USIKk9Dzs+tFMQZyDFrwp+KTczMB1I8ESNqBOkPHB3XOrBpxfET0DQdw0jS42+nrKSKspJqZU0oTkgsEWUo3EU8EcXpyI+Lsjh+HYopx7ImEnT7D+F1VU/7B5JpGkTjYaKJEPFkhFgyhmkkiRkBookQUBjr4FTRNQ1/pJ9IPECVpwHHDFXeisljmAbD4R6C0WF0TT/t9PwToRTEGY6G5d6Ybg+kRDJGJOUuihsxEskoVjbRiHUAmm6blkpP13SSRoIe/yHKXDV4S6qm5TgUuScYHWI43Itpmunvej5RCkKRtiZ6MqyJYmK0dWBNRDONJJqW28yiYkNDH+UKVJy5xBIRBkPdJJLRUd/7fKMUhCKNhp52bySNwrW6TCTjROIB4okoMSNq1ZcyzbSLaMQ6OBM45gpsJ2oECy2OYooxTIOhUDfhmD+lGKa2Q4NSEIpRjLg3QmYfw+G+vMcmTNMgmggTi4ePZRYdZx3o5KBM1rRGQyNmBOjxHzqtEiqK6UMgMoA/0odpMuWKYQSlIBRZ0TgWLK10N+Qs9TJpJAjHAsRTyiA+xjqA6RFMLgSadqyEiirvPnOJJsIMhbpJpOt5FU4WpSAU4zIqWFpSRVnJqU3kMk2TWCJMNB6yrAMjRjKZSGVeKOtgsmiarlrPzkAMM8lgqJtwLGD9Rorgh6EUhOKk6JpOIDKQeiCNP5EraSSIxAKpEhWRdG+KTPPYpqyDnDC6WVSNsiamMaZpEowM4o9a7qSpyE6aKEpBKCbE6IlclZSVVBNLRIkmgulg8ljroFB+0zOJ0a1nlTUx3YjGQwyFekiYhXcnZUMpCMUpoWtaKng2AJij0kuVdVAY0taEv43y0lq8ropCi6Q4CclkgsFwN5F4sGjcSdlQCkJxymiaXqRf5zMbDY3hUDeRWIAqdz02m/p5FxumaaZesPrRMsq+FCvqG6RQzCA0TSeejNDtb6WitBa3siaKhkg8yFCox+o2WOSKYYQzXkEc6NnOjvY/MRjqwuOqYmHtOcyqXFRosRSK00RjINRFOB6g0l2PTT/jf+oFI5GMMxSsuVYOAAAgAElEQVTuIRoPFmSy2+lwRn9rDvRs56/y5+nlQLSflzueAVBKQjHt0TUbsUSE7uFWKkrrcbvKCi3SGYVpmvgj/QQi/dNOMYxwRiuIHe1/yrr+QO9LSkEocsLRwf0c6HmJYHSggBaqxmCok3DcT5WnfkbWrSo2wrEAw+EekkZiWiqGEc5oBTEY6s66PhAZwDCSakav4rQ4Org/bZFCYS1UTdOJxkN0DrVS6a7D7VTWRD5IJGMMhnqIJULT1mrIZHpLf5pUuuvG2WLyzJ6f8tKhpzg80EIsEZlSuRQzgwM9L2Zf3/vSFEtioWlWMuVgsJP+wBEM0yiIHDMR0zQYCvXQ7T9EPBmZ9ophhDPaglg5b+OoGMQIvrL5hKKDdA0fpGv4IKBR5a6nrryR2rJGPCozRJEF0zQJRgfoCXTQ628nEB3Iul8wkn39VKFpOpF4iK6hg1S66yl1egsqz3QnbkToGmrFMI0Z17fjjFYQC2tXAxzLYiqpYqHvmI84EB2kZ7iNbn8bA6FOBkKdyM7n8bgqqS2bT11ZI5XuuhnztqA4deLJGH2Bw/QG2unzdxBJHCvJrWs2DDN53DGaptPjP4TPO69gD5SR6w4EjxKOe6l01xd9Tn6xkUhGGQh1EzEGMWmYccoBznAFAZaSWFi7miMDe4970HtdlXhrK2mqXU00EabX3073cCt9gcO09r5Ma+/LOG0l1JbNp7a8MevDQDGzsDJT+uj1t9Mb6GAw1IWJCYDD5qKhYhE+71x83rn0B4+OikGMYJhJ/t72BFXuBpY0bKDKXT/Vw0ijaTqRWJDueCuVnnpKHJ6CyTJdME2DoXAvwehQ3lt+nozMJIhKdz0r521Mv/jmgjNeQUwUl72UOVVLmVO1lKSRoD94hO6UdXF4sIXDgy1oaITa2qgtW0Bd2XxcDnehxVbkgFgiQl+gg97Uv1ginN5WUVqHr2wuPu88Kkp9ox4WI5bogd6XCEYG0haqt6SKvV1b6fEf4oUDj1Bb1siS+nUF6+SnaRomJn2BI7idZcoqPgGh6DBD4Z4pa/l5IsYmQQyEOtMu81wpCaUgJoFNt1tWQ9l8zjYvZCjcQ4+/jfbevfT42+nxt7MbqCitpbaskbryRrwu1Vd4umC9IfbQ67cUwlD4WLab017K7Mol+LzzqPHOwWkvOeG5ZlUuypqxtKbx9QwEO2npeoEefxs9/jZmVy5hcd1aSguUYaRrOuFYgGg8pKyJMcQSUYbCXcQTU9vy80Qc6Mme7LCj/U9KQRQLmqZR6a6j0l2HOVTB3AUN9AwfsuIWwaMMhXvY172NUkcZteWN1JXNp8ozq+BvH4rRROOhtIXQF+ggnowCVn2jKncDvrJ5+LxzT7knxomo8jSwoekqegPttHRt5cjgXo4O7Wde9VksrD0Xl700J9c5FdLWRPAIbkc5le7aM9qaMFLZSaHYcMHdSZmYpjFuEsRgOHv6/mRQCiLHuJ3lNPpW0OhbQTwZteIW/jZ6/e0c6tvJob6d2HUnvrJ51JU14iubh0O1j5xyDNNgMNSVjiX4I33pbSV2D/VVTfi8c6n2zsnr56NpGrVl8/F553F0aD/7urZxqG8XhwckC2pWscC3siDtRXV0wjE/0XiIKk/9GekuDUSH8Id7i8KdNELSSHBksIWDvTsgFfsaS2XpeOn7p45SEHnEYXMxq3IxsyoXYxhJBkKd6bhF59B+Oof2o6FR7ZlNbbmVFVUo98KZQDgWoDfQnrISDpM04oAVqK3xzEnFEubiKYA7UNM0ZlcupqG8iY6BPezveZH9PX/nUP8uFtaey7zqs6ZUnhGZTAwrNuEqPy7GMlOJJcIMhrpJJGNF406KJ6Mc6tvNob5dxJJhNE2n2jOb/uCR4/ZdOW9jzq6rFMQUoes2arxzqPHOYZl5Af5IPz1+S1n0BQ/TFzzMnqNb8JZUU5eKW5SX+IriyzldSRoJwkY/e44+R2+gnWB0ML2t1FGGr3IJtWXzqPLMwq4XR6MdXbcxv2Y5syuX0ta3k9be7cjO52jr24HXmIthLp7yt1lN0whFh63YhLsel2PqXV9TgeVO6iYc8xfNLOhwLEBb3w46BvaQNBLYdSdNvtU01qzA5XBbWUy9LxGMDFLprlNZTDMBTdMoL62hvLSGRXVriMSD9PgP0T1sKYsDkX4O9LyIy+625luUN1Ltma0qck6AYHQoZSG00x84StJMQJ81J8HnnZeOJRT7ZEe7zcGiOstyONi7nUN9u+g1Jf+3r4sl9eupK2uc0pcHTdMwzCR9gQ7crgoqSmtn1MuL1aPBavlZDIrBH+mntfdljg7uw8TEZXezqG4t86qWjXI5jiRBOOwufN65OZdDPXGKgBKHh3nVZzGv+iwSyTh9gQ66/W30+A/RMbCHjoE92HQ7Nd651JU1Uls2/6TZM2cKCSPOQPBoOpYQig2nt3lcldjiXpbMX0mVu2FaKlinvQTRcB6NNctp3vsnAtEuXjr0JBWldSytX0+1d/aUyqNpOqHoUDo24SxAID2XRBNhhkLdJIzCt/w0TZPBUCcHe7fT428HrO9wk28VsyoWF6Q23PT7xcxw7DYH9RVN1Fc0YaYCqd3+Q3QPt6b/gZU5VVduzbfwuCoLLfaUYZWzGLRiCf4OBkKd6QmKNt1BXfmC9ES1UmcZLS0teXmzmmpKHF5q7YLVjRexr2sbXcMH2dr6e2q8c1lav57yUt+UyaJpOoaZpMffgddVSXnp9HOFGmaSwVA34Vig4C0/TdOk29/GwZ7t6ZTqSnc9Tb7V1JbNL+i9VQqiiNE0nSrPLKo8sxAN5xGMDqaD3IOhLgZDXbR0Po/HWZFKoZ2ZpT8SyRh9wcOpeQntROLHylmUldRYCqFs3hlRLsLrquSc+ZcyFOphb9dW+gIdbAl00FCxkMV166bUdaZrOsHoIJF4kCrPLJx215Rde7KYpkkwMshwtBfMwrb8NIwkRwb30tr7MsHYEAC1ZY00+VZR5WkomFyZKAUxjfC4KmlKlf6IJcL0pFJo+/wd6dIfjlTpj7ry+dR45mK3FUfw9VQYabRiWQnto8pZ2G0uGioWWvEE79wzMv0SoMJdy7qmK+gLHKal6wU6hw7QNXSQOVWCRXVrpmyS2zFrop2yksqczhPJNdF4iKFQD3EjZimGAokZT8bo6H+Ftr6dRFNlwedULmWBbxXekqrCCDUOeVUQQog3AHcCNuBeKeVXx2z/FjCSk+UG6qSUlalt84F7gXlYCb9XSClb8ynvdMI5TumPHv8hjgy2cGSwBV2zUe2ZnapCO7+oZ8Za5SwOp9NQR5ezqE0FmOemgqMz20o4FWq8czjf82a6hlvZ17WVjoE9HBncS2PNCppqV+OwTc1bva5p+CMDROJBKt0NRWVNJJMJBsPdROJBdE0vmNUQiQdp69tJR/8rJIw4Nt3BAt8qGmtWFO1vM28KQghhA74DXAZ0AFuFEI9IKXeP7COl/ETG/h8Fzs04xX3ArVLKJ4UQXkAVrx+HzNIfpmkyHO6l299K9/Ch1APXCniVl9ZSl8qK8rqqC/qmN1LwbCSWMBTuYWTij9M2Us5iLjXeuSogfxI0TaOhoom68kaODLSwr/vvHOzdTnv/KzTVWimRUxGg1zWdpJGgN3AIr6uaspJCf8fMVHZSP5pWOHdSIDpIa892jgztwzQNnPZSltSew7zqs6ZMgU+WfH5rNgD7pJQHAIQQDwBXA7vH2f8a4Eupfc8G7FLKJwGklIE8yjmj0DSNCnctFe5altSvJxQbTqfQDgSPMhzuYV93M6UObzpuMVWlP6KJULq+0fHlLOrTsYRidlMUM7qmM7d6GbMqF3OofzcHel5ib9dWDvXtYlHdGuZUiSn5nDV0AtEBIvEA1Z4G7AV4CEbiQYZCPSSNeMEszsFQFwd7ttPtbwOsKgsLfKuZXbl42mTUaaaZfbr26SKEeBvwBinlP6eW3wOcJ6W8Icu+jcBzwFwpZVII8Wbgn4EY0AQ8BXxOSpm1nnZzc/MC4ODpyOtPdhU0k2EqSJpxwsYAIbOXkNGPiXU7dWyU6tW4NR+lejU2LTdfXtM0iJrDhIwBwmY/MfOYnrfhtK6pV1OiVeXsmopjJM0EQ8l2ho0OTAzslFJlW4BHn7o5DCYmTs2LS58aF0rSSBI1h0masYK8ZJimSdjsZzB5iKhppVy7tDIqbPNwa/nL9rJhp9R2WtWAm9auXds6dmWx/Co3AQ9mKAA7cBGWy+kQ8AvgWuCHJzrJihUrcLkm97aSrR/EqdLS0sLSpUtP6xxTxdjSH8F4D0F60JIaVZ5ZECllxaL1p1z6IxwL0BfooCfQTn/gMImMchbVntnpiWpTVd12On0mJ2NyYzmbaDzE/p4X6eh/hZ7kK0Qc3SytX0+Nd+6UfAYmJnbdmbImrElezc3NrF27NnfXSPXpCEQG0LSanJ13IrS0tLB48SKODu2ntXdHuoiezzuPptrVVLnz30xoshPlotEoO3fuHHd7PhXEYawA8whzU+uysQn414zlDuClDPfUb4HzOYmCUEycsaU/AtH+lLI4lK7v8teW/Xhd1dSlXFHlpT46hw6kG5R4XFU0+VbhcritSqhj2myWOsqYlYolVHtmT8uMqpmAy+Hm7NmvZoFvJfu6mjk6tI/mtj9Q5ZnF0vr1VOa5YZGGRtKI0+M/RFlJTc4zdcKxAEOhHgwzMeXupEQyxlCynWdbthFJBNGwamot8K0uWH+PXJJPBbEVWCKEaMJSDJuAd47dSQixDKgCtow5tlIIUSul7AFeC2zLo6xnNJqmUVZSQ1nJsdIfO/dtRSuN0B88woGeFznQ8yJ23UnCiKWPC0T72XH4z+nlY+UsrAY6bme5iiUUEW5nOavmbWSBbxX7urfS42/n+QOPUFfWyJL69VOQYqkxHOkjHA+QNE6/+2IiGWMw1E0sEZ7y2knRRIhDfbs41LebhBHDpttprFlBY83KGdXjO28KQkqZEELcADyBleb6IynlLiHELcA2KeUjqV03AQ9IKc2MY5NCiE8DTwshNKAZuCdfsipGU+LwUG6bzdIFS63SH8EOuofbODK4L+v+DlsJq+ZupMozPctZnGmUl9awpvENDASP0tK1lW6/ZTlaDYvW5LWisIZGIhkjZPYSiAxMSimZpsFwuI9gbBCNqVUMwegQrb0vc2RwL4aZxGkrodK2gHOXXDQjs+3y+muWUj4GPDZm3U1jlm8e59gngVV5E04xIew2B/XlTdSXN6UKhx1PIhnFVzb9y1mcaVR5ZrGh6Sp6/IfY27WVI4MtHB3ax/zqs1lYe05e6yxpaAyHewnHA1S5GybsfgzF/AyHejBMY0oVw1Coh4O92+katnJhSh1lLPCtYk7VUvbvOzAjlQMUT5BaMQ3wuKoIRPuPX19ksz8VE0fTtNREymMNi9r6dtIxIFngW8WCmhV5a1ikaTqJZIxufxvlpbV4T1AmJJGMMpByJ+mabWqC66ZJb6CDg73bGQgeBaC8xEdT7Srqy5vOiAmbSkEoJszC2nNGNUlPr/edUwBpFLlE03RmVy6hoXwh7QN7OND9Ivu7m2nv28XCunOZV3VW3qqJamgMh7qJxPxW1V3bscfSyITKYHQoNQs6/xVNDdOgc+gAB3u3E4hYL0Q13jk0+VZT7Zl9RsXVlIJQTJhZlYsAUg1KBvCUVLHQd056vWL6o+s2GmuWM6dyKW19OzjY+zJ7jm6htXcHi+vWMrtycV7enDVNJ56M0u1vo6LUh9tVQSg6xNAUtvxMGHEOD0hae3cQiQcAjYaKRTT5VlNeOrWps8WCUhCKU2KkQYni5FiTUA2cdjd2m4NILFSQVMzJYDUsWsO86rM50PMS7f272Xn4L7T2vsyS+vV5LUM9GOpmONKHYSSnpOVnLBG22nn27yKejKJrNuZXn02jbyVuZ3ler13sKAWhUOQQ0zTT9XZKHV7cJeXH3CJuK2c/HBsmHA+mGtQUt7vCaS9h2azzaaxZwf7uZg4P7uXFQ3+ksrSOJQ0bqPbMyvk1NU3HNM28K9JQbJjW3h0cHpAYZhKHzcWi2jXMr1k+Y4POp8qEFIQQwg1sBhZKKd+ZmruwTEr527xKp1BMA0zTxMTAaSvB5fDgLakc11de6vRS6vRimEkCkUHCMT9JI4Y2Bb7106HU6WXF3ItZ4FvF3u5tdA+3svXg7/B557Gkfv20csEMh3s52PsynUMHAJMSh5cFvpXMqRJF05u8WJioBfE94Cgw0g27A/g5oBSE4oxkrFLwOCtGBVdPhq7Z0n3Jo4kwwcggkUQAiqQn8nh4S6o4d/5lDIa62dv1QrpacEPFIpbUrcPtKk6XjGma9AePcLBnO31Bq6BDWUk1C3yraahYOOMbTU2WiX6jV0kp3yeEeD1Y1VWFEOqOKs44kmYSp+6ixOXB7azISfkQl70Ul7cU0zQIRocIx/zEkpEpydiZLJXuOtYtuJK+4GH2dm6lc2g/XUMHmFt9Fotqzy2aRk6GadA1fJDWnpcZjvQCUO2ZTZNv1ZTVoso3pplEJz+P44kqiGjmghCiBPIkkUJRZBiGgd3mwOVw43VV5nVegLekCm9JFYlkFH9kkEg8gGEaRfmGq2ma1bNj0Ry6hg+yt2sr7f27OTLQQqNvBQt8qwrW7yBpJDg80EJr78uE435Ao768iSbfairctQWRKZcYZhKb7qTU4abUWZ63mMlEFcRfhRCbAZcQ4jXAJ4GH8yKRQlEEGGYSu+6gxOHF7SzHMcUd0uw2F1WeekyzjlDcTzg6nAqAm0X31ms1LFpIXfkCDg+0sL+7mQM9L3Go/xUW+lYzv2b5lJVgiSUitPfv5lDfrrQVNq/6LBprVk5pv+58YJhJ7DYnJfb8KoVMJvqp/TvwWcAP3AE8Anz1hEcoFNMMw0xi0xyUON24nRVFkcmiaRoeZzkeZzlu/QhuVzmRWADDTBZdrELXdOZVL2N25WIO9e3iQO92WrpeoC3dsGhp3iyhcMxPa99ODvfvIWkmsOtOFtaew/ya5bjsxeHumgyGkcRut5SC9aIytd/JkyqIVOvQ66SUtwK35l8khWLqsJSCHZfDjdtVgSuP9YdOF5tuo9JdB+46wrEAoegw0UQQiixd1qbbaapdzdzqZRzseZm2vh3sPvJsag7FOurLm3J2LX+kj4M9L9M5tB8TkxK7h8W+dcytEnlzBeYbSym4MpRC4dqSnlRBpCqr/gvwgymQR6HIO2aq0JuVfVReNAHVUyF7umzh2mtmw2FzsbRhPY01y9nf83c6+vewvf1pykt8uI3Zkz6vaZoMBI9ysPfldL91r6uKBb5VzKpcXJTxmpNhGMYYS6E4elVP1MX0jBDibVLKB/MqjUKRJ0zTAE1P/wBdDndRvXVPltHpsiGCkaGiS5e1GhZdSGPNSvZ1N9M5tJ9heokd7GVJ/XrLKpoApmnQNdxGa+92hsI9AFS5G2iqXY3PO2/afZ6ZloLHVV6Q3t0nY6IK4lrgU0KIMGDZtGBKKSf2ySoUBcAwDcDEZXdT6iyjxOGZdg+RU8Fld+Pyukenyyai6HpxKAqPq4LV815Lk28VLx34C/3BIzx/4GHqyhdYDYtclVmPSxoJjgzupbX3ZUIxq89zXfkCmnyr8t4NL9dMB6WQyUQVxLq8SqFQ5AirTwCU2D2UOsvw6ENUe3NfDqKYyUyXjSeiBKIDhONBzCJJly0v9dHgWIlvThl7O1+ge7iV7uE25lQtpcxVQ8fAHoLRAdyuCspKqukPHk13jZtTJWjyrcIzjjIpRkbKeJTYPbhd5dMqNjIhBSGlbBNC2AFxbJVM5E8shWLimKYBgMvuocTpxe30pt0rM9limAgOu4sqewOVpkko5iccGyKa6qlQaKo9s9iw8E3phkWHB+So7cHoIMHoILpmo8m3msaaFdMmXpQ0kzjTSiE3EyoLwURrMa0Dfo01YU4D7EKIf5RS/j2fwikU42FVSjWPFcVzlReNz70Y0TQNj6scj6ucRDJOIDpQFOmymQ2L/iIfSGVljcbtLGdpw4YCSDdxTNPEwLCUgiN3s+wLzURdTHcC75dSPg0ghHgtcBfw6nwJplCMJbN8dklKKRSDy2S6Ybc5sqTLBoD8l9YeD03TiSVCWbcFo4NTLM3EGFEKOja8JZUFUwqGYRKKJfCW5P7aE1UQnhHlACClfEYI8c2cS6NQjOGE5bMVp022dNmEESvIPZ4OLW1HijQ67Cn3kbOCLpuf8lLflMsSjMZpGwjS5Y/gcdrY0Jj7EiITVRAhIcRrpJR/BhBCXAxkV/cKxWlyKuWzFbkha7psqqvaVFkVxdrSNv19tJfgsntwO8sL5j4yTZPDQyGODIcYCsdx2HQ0DWx5ylSbqIL4GPCgEGKkaJ8T+Me8SKQ4I7F+hCZOm2tS5bMVuWNUumxkiHB8atJli6mlbTEpBYBQNEHrQICuQATDMLDpOg5b/t2rE81i2iqEWMzoLKZ4/sRSnCkYZhJHjstnK3KDpul4S6vwlk5dumwhW9qOVQqFfkkxTZMjw2GODIUYDMcsa4H8WQvZmGgW06XAVinlztRypRBijZTyeHtQoTgJI+WzR7KPplNe+JlKMafLng6ZSqHE7sXjqkDXCzumQlkL2ZioevwasCZjeRj4+ph1CsW4FLp8tiI3FGu67KmQdmfaXUWjFEzT5OhwmMNDIQbCMZwFsBayMVEFoUkpzZEFKaWRqvKqUIxLMZbPVuSOkXRZs7SWSDxIKDqUmsdQuHTZ8UhnwzlKKbF78JRUFIX1E4knONgfpMsfJpmyFpwFshayMVEF4RdCnCelfB5ACHEeVk0mhWIU06l8tiI3aJpWVOmyI2QqhVJ78aRIm6ZJ53CEjqFgOrYAk7MWntnbyf/+/SCHBoKc3VDB5y5ZwaZzc1dOfaIK4rPAb4UQu7BmUp8FvDVnUiimNTOhfLYiN2RPl7XeJafCqjg2mbKUkiJSCnDMWuj2R4gnk9htpxdbeGZvJ7c+tSO9vOPoIO+6/28AOVMSE81i2iKEOBu4HDCBPVLKF3MigWJaMlPLZytyx0i6rGEahCJDhOLDxBOxnKfLFrNSME2TLn+EjsEg/aEoTrsllz0HbqSf/f1A1vW3P71rahSEEOJ+4GtSyu1YlsMdwBDgE0L8u5Ty3pxIoZgSRuoXmaaZKtie2qBZKY0aGpqmo2s6OjYc9hI0rIk4Orq1j6ahoVu9cWd4+WxFbtAz0mVjiQiB6CBgYpxGuuxIoNllL7VqH7kqiqrsSjQdW4iQMAxsupZWDrlgd+cgrf3Zvfy7u3JXmuRkFsSalHIAeA+wW0r5OiHEXOB3gFIQU4BpGlke6hq6pqUf6sf+aWjYjnuo69is/3UbumbHptvSx2T7YbXbevF550zpOBUzH6e9hGp7Ax69jkp3HeHYMNFEZEIP92JXCpnWwsCo2ELuXqKiiSQ/eWE/D77cNu4+Z9fnrhT6yRREJOPvC4HfAEgpO4QQZvZDFHDsoW5iYn09tLw/1BWK6YKVLluBx1VxwnRZ0zQwIaUUirNAYyxhILuH6PJHiCctayEf8xZ2Hh3ka3/aRcdQiNnlpVyyZBY/bT7ezXTjJctzds2TxiCEELOBAeA1wJcyNs24nMXTfag7NDdlrmr1UFcoToGs6bLJME5bSdEqBdM06QlEaB8M8ffuEGdXh9A0LafWwgiReJIfvbCPh14+BMA/rprP+zcspsRhY36Vh5+/eJC2gSDL6yu58ZLlU5rFdBvwEhAD/ial3A0ghDgfOHSykwsh3oBVKtwG3Cul/OqY7d8CNqYW3UCdlLIyY3s5sBv4rZTyhgmNaJJUuOss3/tpPNRduhdvafFUnlQophOZ6bLFSiyR5GB/gE5/mHjSxK5rOGz5K2j48pEBvvanXRwZDjOnws1nNy5nxaxjLqTXLmngtUsaKHM5WDuvJufXP6GCkFL+SgjxLNAAbM/YdAi4/kTHpibSfQe4DOgAtgohHhlRMqnzfyJj/48C5445zX8Cf53AOE4bj6tiKi6jUCimId3+MB2DIfrCUeyapRDsebAWRgjHE9z73D5+u7MdXYN3rG7k2g2LcOUw0D0RTupiklJ2Ap1j1h2ZwLk3APuklAcAhBAPAFdjWQTZuIYMF5YQYi1QD/wB1RNboVBMMbFEkraBIEeHQ8RGrIUpKH3x4uF+vvGn3Rz1h5lf6eEzG8/m7IbC9ODOZ6nCOUB7xnIHcF62HYUQjUAT8ExqWQe+AbwbuHSiF9y5c+dkZc0Zzc3NhRYhZ8yUscyUcYAay1QwEE7QFY4zFE1g0ybmPmppaTnt60YSBr/ZN8BfDwfQgNc3lnNlUyX24W5ahrtPeKzboUN37qsWFEvB/U3Ag1LKZGr5I8BjqWypCZ9kxYoVuFyFKwLX3NzM2rVrC3b9XDJTxjJTxgFqLPkknjRoTcUWzDKDObrGRJO8W1paWLp06Wldv7mjj2/8eTdd/ggLqjx85rXLWVY3cbf3ZGMQ0Wj0hC/W+VQQh4F5GctzU+uysQn414zlC4CLhBAfAbyAUwgRkFJ+Li+SAm39AerLSihxFIvOVCgU+aY3lYnUF4qkrQVHHmMLYwlE4/xgy15+/8phdE3j3WubeNfahUVTsC+fT8OtwBIhRBOWYtgEvHPsTkKIZUAVsGVknZTyXRnbrwXW5VM5ALT0DCO7hyl12Kh0O6kqddJQVpqTKfEKhaJ4SKSshaP+MJGEgUPXsBegrPYLh3r55p930xOMsrDGy2c2LmdpbfkpnydhGNS489NTJW8KQkqZEELcADyBleb6IynlLiHELcA2KeUjqV03AQ9klhMvBBrgsOskTZO+YJRuf4TdXUOUOe1UljrxeVzUeErQp/DtQqFQ5I6+YJT2gSA9wQh2feqthREC0Tjf+78W/rDnCDZd433rFnLNmqZJTa5LGAaitoJ5VZ48SJrnGISU8jHgsTHrbhqzfFrVT/IAACAASURBVPNJzvET4Cc5Fu2k2HQNGxrRpEFXIMLhIWsiTHmJg8pSJ/VlJZSXqE5oCkUxk0ga6UykSPz0K6ieLltae/jWX1+hLxhlsa+Mz25cziJf2aTOlTRNljdUMqs8f9WTlcN9goy4moKxBMFYgtb+AHabTmVKYcwqV30PFIpioT8Y5dBAkN5QFJtmTcIrpLt4OBLnu/9P8mTLUey6xnUbFrHpnAWTlilpmqyeXYXPk9+CFkpBTJKRt5ChSJzBcIy9PX4OdQdxHh1Q8QtFmnjSoC8YJRhLpGbd6rgdNkocdhw2reAtJWcSI9ZCpz9MOJbAbtPzOpltovztYDd3/vUV+kMxltaW8dmNK2iqmfxscROTtXNrqCzNvwdDKYgcoGkaTruGYZKOX+zqHKLcZaei1Emtil+cEYwog6FwjEAsTiCaJJpIYNP1dI0ewzRJGFbJdasgI2m3h92mY0/5xUfWOWwaNk2n1GEjHE8STxpp/7nCYiAY5dBgkJ5gcVgLIwyFY9z9N8kz+zpx6Br/fN5i3nFO42m/FKyfV4PXNTXubaUg8oBNt4p2RZMG3YEIR4ZCAJSXOqgscVFf5qKitHDzNRSnTyJp0HsSZQAc1wNA1zSctuMf7vGkQTxpZL2WaZokDRPZEyK0rzPVzN6yRhy6jl3XseuklYwjpWicdhtuhw2Xw4ZD12fUC0rSMGjrD3LUHyYUS1hjLqLx/f/2zjw+rqvK89/aS6WtqlSydtmOLV3vayyHkDibDSHwgW5gaJOebmgYms8QYBIaGLqnp+lmYAZI03SahtDsW4KhA4EQ0h3sOAkJJrGtmDheciXvki3Z1r6XVPXu/PFeyWWlbGupXff7+eijeq9e1btXeu/+3rnnnnOePX6ef3nuVfpGx1m+oJSP37aCRcG55Ziy22w01ZXhdadv2NYCkQZiTzMj41FGxkc41TuEy27HX3DJf6HjL7KXqWIwPB5lbOLaYpAszCdiUxDi18dHDUXUiALRhJ8z3zfTZdts4LDZze+xW0JiN/MJTVordvN3gdOB1+2YPC6b6BsJc9paiWS3Mi1n0uk8ld6Rcb7y/Ks8e/w8LoedD76ugXesWTinLK9KKdxOB011ZbiyLReTJvm4E/gvdPxFdhCJGnSPhOkbGWd4IsJQOMLohOk/iJ8aSJUYJBPTkr28nUrBeNRg/ArWimFZK1Flprx3WNM1Mf+J026fnAKL31fgclDgcljTYvakToFFDYO2vmHO9Y8yPGktZNf9oZTimePn+cpzr9I/NsHKylI+cevKOS8/NZSiyO1kY11ZRvxVWiAyTMx/EYu/uDh0Kf6i1Iq/CGn/RUqYrhikO4NmJrHbbNgdNlxT9kcMReQK1opSatK3AjZsqEtTXXZLSGJiYgnLuaFxagZGJ6fApv7NwZzDj1kLNqtt2WQtxBgIR/mHJw/y3MkLeJx2PnRjI3+0un7OtSGihiLgc7O+Jpgxn5MWiCwjNkd9Nf9FidetnZQzJCYG/aMTls9Ai0GysNlsOGw2po7dsSmwcILPdAxPcLizj6iyaqQTm+4yp8CUUoxMRHE57Diy9FpXSvFUayf/8sI5hiMGq6v8fOK2ldSUzj0uIWooKoq9rKz0Z/Re1wKR5VzJf1Fa4MLvNf0XBWl0WuUCkahBz0iYvtEJXu0eZfj4eS0GWUgsGDWe2BQYkJXWQozu4TD//Nuj7Dl1EbfdxkduErx1VR32JAzmEUNR5/chZpCsL1XokSXHiPkvBsYm6B8d51jXIF6XA3+Bi0CBm6oS37zyX8SLQSLLYDhiYCilxUCTFJRS/EZ28LXfSYbGI6yrDvD2RQW8fnV9Ur4/ElUsCRWxuGx20dXJRgtEDnMp/kLRMzJO13CYoxcG8tZ/kUgMxiJRHDa0ZaBJOReHxvjys0d58UwXBS4H925ZxptX1HKstTUp3x+JGoiKUur8qcmrNBu0QOQRCf0XNsz8UTnmv5iuGGRLWmRN/qKU4j9ePcfX97QwPB5hQ22Qj9+6gori5KXXiRqKVdV+KotTl1dpNmiByGOm+i9O9w7hzEL/xVQxGA5HGM0TMdjd2snDL53kdO8wCwOF3L1hMbc3VGa6WZppcn5wlH969ij727rxuRx87Jbl3LW8JqkPWYZSrK8JEExxXqXZkPnRQZM2XFP8F61dAxS4nJP+i8oSX8odg/ksBlPZ3drJ53a9Mrl9smdocluLRHajlOLxI2f5xu9bGJmIsqmujPtuWZ5Uq8E8D1xfW0ZJGvIqzQYtEPMUm82Gx+m4zH9x5Hw/xR4zurt7dALDUHPyX8SLwXDMgZynYpCIh186mXD/jw+c1AKRxXQOjPKlZ47w0tkeCt1OPnHbCt4oqlMyNdtUX0ahZ2rUSfagBUIDmP4Lj9PBuOW/ON4Xxnasg1KPi1KvWf+itODK/ouoYSWqG5tgKDz/xCCGUorWrkF2yg5O9gwlPOZk9xA/P3iGpvoyarPIITnfMZTiscPtfPP3rYxFomxeGOK+LcspL0ru1I9SZiBhU10ZnixPsZPdrdNkDIfdDFgamYgyMjHKmb7hy/wXRR7nZWIwMmGKQfwS23wXg3jOD47yVGsnO1s6ONM7DIDdBkaCOokK+OrvJF/9HVSXFNBUH6Kpvoy11UG8Lr0CKxOc6x/hH585wsvnein2OLl3y0q2NlYl3WpQ1pLrpvpQTixH1wKhmRZT/ReGUlOWlmb/xZ5shscj/Pb4eXa2dHDwXC8K8+90y5IKtjZWMRKe4P/tPvyaz330JoHTYWffmW6a27v5xaE2fnGoDbfDztrqAJsswagt9eXEirNcxlCKX7zSxrdfbGUsYnDjonLu3bKcssLkZ1s2lKLY42JjbVnOLD3XAqGZMbHUCvORSNRgf3s3O1s62HPy4mTU75oqP1sbq7hlSQVFcXPKdrudHx+4tIrp3esvrWJ684paIlGDw+f72Humm71nutjX1s2+tm6+9juoirMu1lUHM9LffKa9b5j7nz7Coc4+Srwu/urWFdy2tDIlomwoRcDnYV11IKdEXwuERnMNlFK0XBxgZ0sHT7d20jc2AUCd38e2xiruaKii8golZ29vqLyqQ9rpsLO2Osja6iAfuKGBi0Nj7GszxeKl9h5+eaiNXx5qw+Wws7TUzW2jHprqQ9T6tXUxW6KG4uevnOE7Lx5jPGpw83UL+OjNywj6UlOjJWIoqoq9rMhwXqXZoAVCo7kC5wdH2dXSya6WDs70mX6FUq+LP15dx9bGKkR5SdJv+PIiL3ctr+Gu5TVEogZHzvez90wXe890cbR7iKN7WvjanhaqigvYVF9GU32IdTVBCrTvYlqc6R3m/qcPc+R8P6VeF5+6YxW3LKlI2fkihkF9oJDG8sznVZoNWiA0mjiGwhP89sQFdrV08PK5XsD0K9xq+RU21ZWlzbnodNhZUx1gTXWA/3ZDA3tfOUK3s5S9Z7pobu/hscPtPHa4HZfDzpoqvzUdFaJOWxevIWoY/PvLZ/jevuNMRA1uXVrBR25altK6zpGooqG8mIXB7MirNBu0QGjmPZGowb62bna1dLDn1CW/wtrqAFsbq9hy3YLL/AqZwu9x0tRYw5sSWBfN7T00t/fw4J4WKou9NNWH2FQfYr22LjjVM8QXnz6MvDCAv8DNvVuWcfN1qbMawJzGWl5RQk2OL2PWAqGZlyilkBcH2DXFr1DvL2RrYxVbGyuTHjWbTKZaF13DY+yzHN2XWRd2G6urA5PO7np/4byxLqKGwY4Dp/nh/uNMGIo7Giq55yZBqTe1UctRw2B1VZAFxdmXOmOmaIHQzCs6B0Z5qrWDnS0dtPWZxZj8ll9hW2MVjSnwK6SDUKGXNy03rYuoYXC4s39yVdRL7T281N7D1/dAZbGXTXWmWKyvDVKQ5YFas+V49yD37z5Ma9cgQZ+b+7Ys58bFC1J+XkPB+ppgVuZVmg35eXVoNHEMhSd49vh5drV0cLCjDzCD+G5dWsG2xiqur02fXyEdOOyXWxfdw2H2tXWx90w3+9u6+dWRdn51xLIuqgJsqi9j88JQXlgXkajBwwdO8lDzSSKGYltjFR96vaDEm54pwutrg1mbV2k2aIHQ5CUTUYN9Z7p49JWLvPJMGxNxfoVtjVXcnCV+hXRQVujhzmU13LnMtC5M34W1lPZsDy+d7eHfft9KRbGXTXXmyqgNOWhdHOsa5Iu7D3G8e4hQoYf7blnODQvL03Jumw2a6kJZkR05meRXbzTzGqUUr16w4hWOdTIQ8ysECq14hez2K6QDh93O6qoAq6sCvH/zUnpGwuw9082+M13sb+vm8SNnefzIWZx2G2ss66KpPsTCQPZaFxNRg4eaT/LwgZNEDcWdy6r57zc2puUBQCmFwwavW1iOOw8LVWmB0OQ8HQOj7GrpYFdLB+39ll+hwM3bV9fT6B1n68ZVWTu4ZZqgz8Ody6q5c1k1UcPg6PmByZVR8dbFgiIvTZZYrK8J4suSJ+WWiwN8cfdhTvYMsaDIy8duWc6m+lBazq2UosDlZHXIl5fiAFogNDnKoOVX2Ck7ONR5ya9wW8yvUFeGw26npaUl4+IQMQycdhtR4/L8VdmGw25nVZWfVVV+3mdZF/vOdLO3rYvmKdbF6qrApGBkwroYjxr8cP8Jdhw4haEUb15Rwwdf10hhmoQraij8BW7W1wQ50H0mLefMBFogNDnDRNRg75kudrZ08MKpi0wYChuwrjrANlHFzddVpG2AmA4RQ1HscbI05Cfo89DeN8zp3mHCEQNHDiRrC/o8vHFZNW+0rItXL1yyLg6c7eFAnHURm4rakAbr4tXz/Xzx6cOc7h2motjLx29dwYbaspSeMx5DKUJFHtZU5VZepdmQPXeTRpMApRRHz/ezs6WDZ46fn/QrLAoUslWYeZAWJDlf/1yJGgqv08HyiuLLfB51gSJq/YW09w1zqmeY8WhuCAWY1sXKSj8rK/38RZNpXey3ckbtb+vm10fO8mvLulhVeSmqe1EwedbFeCTK9/ad4N9fPoWh4K0ra/nADQ1pne6KGIrqkgJWVPrTds5MMu8FYseBk3z+qUMc7uzXNYOziHMDI5ZfoZOzll8hUODmHWvq2dZYxdJQcdY9vUUNA7fTQUN5CTWliYvP22y2SaE4NzDKye4hwpFozghFjKDPwxtENW8Q1UQNxasXrLiLM9384VwvfzjXyzdeaKW80DMpFutrg7O28A539nH/04dp6xuhqqSAj9+6gnU16c1wGzEMFgWKWFpektbzZpKUCoQQ4k7gAcABfEtK+fkp738ZuM3a9AELpJR+IcQ64EGgBIgCn5NS/iTZ7dtx4CR/+qPnJ7d1zeDMMhie4JljZrxCzK/gcdq5o6GSrY1VbKwNZuUcvqEUDpudhlAJddOcj7fZbNSU+qgp9XG2fyRnhQLM4lLx1kXvyDj7rbiLfW3d/ProWX599CyOOOuiQo3ToNQ1/1ZjE1G+u+8YP3vZnOf/49V1vH9zQ9rTh0QMg8ZQCfXBorSeN9OkTCCEEA7gq8A2oB3YJ4R4TEp5JHaMlPK+uOM/Aqy3NkeAP5dStgohqoFmIcSTUsq+ZLbx808dSrj/63tacNhtlPk8lBV6KPO583aVQqYZjxrsPd3FrpYOXjh9ya+woSbIViteIVtWzExFKYUCFgaKWBwsmnURmJhQnLOEYjQSxZmDQhEj4HOzTVSzzbIu5AUr7qKti4PneieTIP7boZ7J4kgbassodDvZ3drJwy+dnPQvjE1E6B2doKa0gI/fupI11YG09ydqKFZU+Km+glWYz6TyzmsCjkkpTwAIIXYAbwOOXOH4dwOfBpBStsR2SinPCSEuAOVAUgXiyPn+hPu7R8J85jcHL9tX7HERKowJhvW70EMo7nU0UX1JzWtQSnHkfD87pelXGAybfoXFwSK2WvEKya4DnEyUUkSVos5fyNJQcdKsmupSH9WlPjoGRjjRlftCAaZ1saLSz4pKP+9tWmJaF+3dPHXoBK/2TfDE0bM8YVkXNaW+yXKtYC5fBthcX8bfvWFtRsqxGkqxtiZAKE9SZ8yUVApEDdAWt90ObE50oBBiIbAY2J3gvSbADRxPdgNXVJTySsdrNaeiyMs71y6keyRM97D50zUS5sLQ2BUL0QPYgNIXOk0h8SUQE2vbX+DOyamEuXKuf4SdVrzCOevmD/rcvHNtPdsaq1lSVpR1foWpRAyD6hIfDaFiXCmyKqtKfFSV+OgcGOVE9yAjE7kvFDECPjfbGqtYyCBLljZcZl3ICwMJP3NxOJwxcdhQW5bSlODZTrbY7tuBR6SU0fidQogq4IfAe6SUxrW+5NChxFNGV+JPFhcmFIg3LyxilXcMvEDQjalPZk73cNSgPxylPxylLxylfzz2OjK5/0zPEMe6Bq94XhtQ4nHgdzso9Zg/fut3qds5+brQZceewQGzpaXl2gddg+GJKPvPj7C3c5gT/WEA3HYbTZWFbK4sRAS8OOw2jJ4OWnvmfLqEJKMfEUMR9DpYWOxhdNDOwbNJaNg08ABDoxOcHBonYqik9CVbOH6sFSdwox9u9Ae456kBEt3kp3qGMtLvZQEvxwfOTevY5ubmFLcmM6RSIM4CdXHbtda+RGwH7onfIYQoAX4N/C8p5QvTOeGqVavweKZfNnDjRlh83Um+8NRhDnf2sTB4ec3gmdLS0kJjYyNKKUYmopdZH7HX8VbJuZEwpwfHr/h9TruNoO+1U1kxqyQ25VXkdib9yTvWl9kwHjV48fRFdrZ08OLpLiIxv0JtkG2NVdy0OH1+hbn0A8zYi1ChB1Feis+T2eep3zz/AsW1Sxgej+S8RZHo/7LwQHdCC31RsGhO/8OZYrfZ2FRXNu28Ss3NzWzcuDHFrUoN4XD4qg/Wqbzi9wENQojFmMKwHbh76kFCiGVAAPh93D438CjwAynlIylsI9vXL2b7+sXskueSltHTZrNR6HZS6HZSH7hywRClFIPhyKRwdCUQke6RMC0XBzh6Ff+G22GfFI6r+UlSOSgrpTjc2c/OlnM8e/w8g+EIYPoVtjVWcXuW+xWmMhE1CBS4aSwvyZrsnGUFLjYuKufC4CgnuocYCk/kVRbauzcsnlxFGM+71y9Oy/mVUrgcdprqQ3pRikXKRgwpZUQI8WHgScxlrt+RUh4WQnwG2C+lfMw6dDuwQ0oZPwK+C9gClAkh3mvte6+U8g+pam8msNlslHhdlHhdLC678vI5Qyn6Rycs4RgzhSSBVXLkfB9X85P7XI6rOtlj73mucnPErzJZGCjkzmXVDIUj7GrtmHQqlvnc/Je1C9nWWMWSUG6VW4xFP6+tDhBIURH7ubKguIAFxQVcHBrjeNdg3ghFzHL/8YFL19dcLPqZYChFods5maJFY5JSm1lK+QTwxJR9fzdl++8TfO5HwI9S2bZcwm6zEfC5CfjcLL3KgBs1DHpHxy8TjkRWSaxQzpUo9jgpctqoloOXWSbnBkb52cFLeWdO9gzx4B5zbtjrtLO1sYptjVWsrwnmnBM+aigKXK+Nfs5myou8lBd5uTg0xonuQQbHcl8obm+oTHsMUnxepdkuVc5XssVJrUkCDrudUKH3mkvyJqIGPSOXC8dUq+TC4Cgd7dPzGpcXefju9htzrn4ATC/6OduJCUXX0BjHuwcZGJvAleNCkS6ihmJBkZdVVf6sX0GXCXLvjtbMGZfDTkVxwVWflFtaWlh43ZLLROOzO18h0QxWz8h4zomDoRR2m21G0c/ZTqjIS6jIS/fwGMe7hhgIj+PU0yVXJGIoakoKWD5P8irNhty6qzVpxeN0UF3io7rEfLL+UfPJhKtMFl7FEZ9tKKUA25yjn7OZskIvZYVeeobDHO8epH9MC8VUoobiurIirivLLR9ZutFXjWba3L0h8WqSdK0ymQux6OfqUh9blixgSag4L8UhnmChh031ITZaaSxiZVfnO5GoQeOCEi0O00BbEJppk8lVJnMhFv3cWF6S807c2RDwedhU76F3JMzxrkF6R8fnrY8iaihWVfupLM5Nf1O60QKhmRGZWGUyWyKGosRt5+bFC/DkmI8kFQR8Hq6fx0Ix3/MqzQZ912jyjvjo56OD57Q4TCEmFP2j47R2DdI7Es57oVDovEqzQd85mrxhImoQ8HkQ5cUUe/VAcC1KC9xcX1eW90Jhw0ydUehxZbopOYcWCE3OE4kalHjdNFQXZ230czYTLxTHugbpySOhsNtsbK4v01bkLNF/NU3OEjEUPpeDlZX+nMrzlK2UFrjZWFfG4Ng4LRdzWyiUUridDprqylKWln0+oAVCk3NEDQO3w0FjRcm8rPKVaoq9l4SitWuQ7uHcEgpDKYrcTq6vC+X9UuZUowVCkzNEDYXTYaOhvIQ6f35EP2czxV43G2rLGAqP03pxkK4cEIqoYfqh1tcE9fWRBLRAaLIeQyls2FgcLGJxDlSdyzeKPG7WxwlF93A4K+NJIoaisriAlZU6r1Ky0AKhyVqUUhhAnd/HkrLk1X7WzI6YUAyHJzjWNciFobGssSgiUYO6QCFiQWmmm5JXaIHQZCURQ1FdUjBvo5+zmUKPi7U1QUbCEVq6+ukaHs9ohbtIVLEkVMxinToj6WiB0GQVEUNRUeyhMVSilyZmOT6Pk3U1ZYyEI7R2D3BxKJx2oYhEDURFKXX+3EkYmUvoO1CTFUxEDcqLPDSGMl/7WTMzfB4na6uDk0JxYTA9U0+GoVhdHciZAk+5iL4TNRklElX4fW4d/ZwHxIRidDzCsa5Bzg+NpizNuKFgXU2AoM6rlFK0QGgygo5+zl8K3E5WVwdYOl6cEqFQCq6vDVKi8yqlHC0QmrQSMczi8Dr6Of+JCUXjRDGtXYN0DI7imqNQ2GzQVBfS05BpQv+VNWkhFv0sKkuoKtHRz/MJj8vJqqoADaFijnUN0TE4MuPvUErhdNjZXB/CrVNnpA0tEJqUoqOfNTE8Licrq/wsDRXR03aSiGFMa+pJKYXX5WBTXUgveU4zWiA0KcFQCpvNxnVlRSwK6uhnzSU8LidL/F5WX1fBsa5Bzg2MXnF5bNRQlHpdbKgt03mVMoAWCE1SUUqhgDp/IUvK8r/us2b2uJ0OVlT6WRoqnhQKh43JhwlDKcoKPaytDugHjAyhBUKTNCKGoqbUR0OoWE8FaKbNVKHoGBhFAdXFXlZUBTLdvHmNFgjNnIkYBhXFXkR5qXYgamZNTCgaQsVcGB6jplRHR2caLRCaWROLfhblpRS49aWkSQ4up0OLQ5ag72pNQgylGI8aVqptsAEOux2nw4bTbsfncrI0VKSjnzWaPEYLRJ5iKEXEUFcc4J12Gw6bHacdnA47DnvcfruN8VKPWcvX6Zzcpx2FGs38QgtElmIoRdRQGMrcttkUDltsIDcH80uvbebgb7fhsgZ7t8OB12nH43JMDvwzGeAvFrgoLdApMDSa+YwWiBShrAE+qswR3maz4bDZrjnAOx32yfe9Tgdel8Mc9G02vWRUo9GkFS0QV2DqAA827DbMp3FH3ABvswZ5h40er5M6v2/yGK/Tiddpx+Ww47Tb9QCv0WhyCi0QFtWlvtc83XudDrxOBy6nffIp/2qMnvWwJFSSphZrNBpNatECYbGi0p/pJmg0Gk1WkVKBEELcCTwAOIBvSSk/P+X9LwO3WZs+YIGU0m+99x7gb633Piul/H4q26rRaDSay0mZQAghHMBXgW1AO7BPCPGYlPJI7Bgp5X1xx38EWG+9DgKfBq4HFNBsfbY3Ve3VaDQazeWkMmFOE3BMSnlCSjkO7ADedpXj3w382Hr9RmCnlLLHEoWdwJ0pbKtGo9FoppDKKaYaoC1uux3YnOhAIcRCYDGw+yqfrbnWCQ8dOjSrhiaT5ubmTDchaeRLX/KlH6D7kq3kU1/iyRYn9XbgESlldC5fsmrVKjyezAV3NTc3s3HjxoydP5nkS1/ypR+g+5Kt5HJfwuHwVR+sUznFdBaoi9uutfYlYjuXppdm+lmNRqPRpIBUWhD7gAYhxGLMwX07cPfUg4QQy4AA8Pu43U8C/1cIEUsG/wbgr1PYVo1Go9FMIWUCIaWMCCE+jDnYO4DvSCkPCyE+A+yXUj5mHbod2CGlVHGf7RFC/B9MkQH4jJSy5yqncwCMj48nvR8zJRwOZ7oJSSNf+pIv/QDdl2wlV/sSN2YmLORiU5OpJHKX5ubmm4DnMt0OjUajyVFu3rhx4/NTd2aLk3qu7ANuBjqAOTm6NRqNZh7hAKq4NFtzGXlhQWg0Go0m+ejK8hqNRqNJiBYIjUaj0SREC4RGo9FoEqIFQqPRaDQJ0QKh0Wg0moTkyzLXtCCE+A7wFuCClHKVtS8I/ARYBJwC3iWl7BVC2DBrYdwFjADvlVK+lIl2T0UIUQf8AKjATKf+DSnlAznaFy/wW8CDeT0/IqX8tBXBvwMoA5qBP5NSjgshPJh93wh0A38ipTyVkcYnwEqTvx84K6V8Sw734xQwiLnsPCKlvD4Xry8AIYQf+BawCvN+eR8gycG+zBRtQcyM7/HatOOfAp6SUjYAT1nbAG8CGqyfvwQeTFMbp0ME+Csp5QrgBuAeIcQKcrMvYeB2KeVaYB1wpxDiBuALwJellEuBXuD91vHvB3qt/V+2jssm/gdwNG47V/sBcJuUcp2U8nprOxevLzAH/P+UUi4D1mL+f3K1LzNCC8QMkFL+Fpia8uNtQKza3feBP4rb/wMppZJSvgD4hRBV6Wnp1ZFSdsSeaqSUg5gXfA252RclpRyyNl3WjwJuBx6x9k/tS6yPjwB3WE99GUcIUQu8GfNpFatdOdePq5Bz15cQohTYAnwbQEo5LqXsIwf7Mhu0QMydCillh/W6E3PaBmZZ0yLdCCEWYVbye5Ec7YsQwiGE+ANwAbO41HGgT0oZsQ6Jb+9kX6z3+zGnb7KBfwY+CRjWdhm52Q8wRfo3QohmIcRfWvty8fpaSmKNGAAABgBJREFUDFwEviuEOCCE+JYQopDc7MuM0QKRRKyEgzkTmi6EKAJ+BtwrpRyIfy+X+iKljEop12GmhW8ClmW4STNGCBHzbeVL5ZmbpJQbMKdc7hFCbIl/M4euLyewAXhQSrkeGObSdBKQU32ZMVog5s75mAlp/b5g7c/qmhZCCBemODwkpfy5tTsn+xLDMv2fBl6HadrHFmHEt3eyL9b7pZhO3kzzeuCtlnN3B+bU0gPkXj8AkFKetX5fAB7FFO5cvL7agXYp5YvW9iOYgpGLfZkxWiDmzmPAe6zX7wF+Gbf/z4UQNstp2h9nkmYUa67628BRKeU/xb2Vi30pt1aZIIQoALZh+lSeBt5pHTa1L7E+vhPYHZ9qPlNIKf9aSlkrpVyEmQJ/t5TyT8mxfgAIIQqFEMWx15j1XA6Rg9eXlLITaBNCCGvXHcARcrAvs0Evc50BQogfA7cCISFEO/Bp4PPAT4UQ7wdOA++yDn8Cc6nbMczlbn+R9gZfmdcDfwa8Ys3dA/wNudmXKuD71vJQO/BTKeXjQogjwA4hxGeBA1hORuv3D4UQxzAXHGzPRKNnwP8k9/pRATxqjalO4GEp5X8KIfaRe9cXwEeAh4QQbuAEZvvs5GZfZoTO5qrRaDSahOgpJo1Go9EkRAuERqPRaBKiBUKj0Wg0CdECodFoNJqEaIHQaDQaTUL0MldN1iKEeBEzS6sbaMRcSw9wQEo5o+WDQogngQ9eK+OpEOK7wDellHtm3uKE3+cEJoACKeXYLD4fBN4npfzHZLRHo5kJepmrJuux8kXtl1KGrnKMQ0oZTV+rpkcSBGIp8LyUsjLpjdNoroG2IDQ5iRBiK3A/8ApmCuZPCSFCmEFNsYyuH5NSPmMd3w5slVK+KoR4HtgD3IiZSO0hKeXfWsc9D3zWCuz6ETAALMdMn/Ac5tO8iqupsQAzKMoJ/EpK+fVrtLsdM8jtjUAl8AUp5YNWoN/XgFswU5j3Sym3AF8FyqyAxkEp5c1CiE9iRk+7gVFMy+hgnBj9DfB2IIiZ1v0X1rlvAr4IFFrN+ZiU8ikhxHLMlOEh62/3JSnlD6wo6B9i5raKAIeklHdP7z+kyQe0D0KTy6wB/lVKuVZK+R/AE1LKJiup2n/FHMCvRC1mGuf1wIeswjyJWIlZA2QlZo6nW639/wo8KaVcCdxrfdd08Ugpb8DMt3S/lSJkA6ZgrbBqW7zNOvYeoNuqq3Czte87Vj/XAf+AKSzx9EopN2EWtnkAwBLPnwH3Wd+/AXjJysn1EPBRq27DzcD/tiyXu6y2rpBSrrHaoplHaAtCk8sclVLujdtusNKhVGM+8dYIIUJSyq4En/2plNIA+oQQElgCnExw3KNSyjCAEOKAddzTwG2YBWGQUp4UQjwzg3bvsD53QggxiGnFHAN8wDeFEE8Dj1/l85uFEJ8CApiW0lRx22H9fgGot0Tg9cDLsaRz1nRcrxBiDaaF8NNL6YZwYVpNB4AvCSG+AjyLmUZCM4/QAqHJZYambP8EuMfKxeTAnH7xXuGz8f6AKFe+F6Z73Ex4zXda5SpXYgrPVuALQoj1Uz9oWRs/wUyn/QchRD1mfqBE3x/zyTiu0hYb0GlZI6/BatNWTGvic0KI1VLK8at3T5Mv6CkmTT5RyiUr4AOYT8Kp4hmsbJ5CiIVcmnqaFUKIBYDXmir7JGait0WYPpBCS/AACjAH/FhRmg9N8xS/A9YKITZb53NYWXCPAFEhxLvj2rJCCFFk+VmiUspHMafRqgH/HLqpyTG0QGjyiXuBx4UQL2FO2/Sn8FwfBu4SQhzG9EfsneP5FgK7hRAHgYPAL4B9Vj2FR4BDQojnpJQ9wGeAZiHEfkwBuSbWNNs7gAesczQDG6SUE8BbMFNUH7T68xVMB/ha4PdCiJcxKw7+vdUezTxBL3PVaGaBNdUzLqWMCiFqgH3AFinlsQw3TaNJGtoHodHMjmWYdYptmPfR32px0OQb2oLQaDQaTUK0D0Kj0Wg0CdECodFoNJqEaIHQaDQaTUK0QGg0Go0mIVogNBqNRpOQ/w98JrT/4cPb8QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\r\n",
    "from sklearn.datasets import make_blobs\r\n",
    "\r\n",
    "from yellowbrick.model_selection import LearningCurve\r\n",
    "\r\n",
    "# Generate synthetic dataset with 5 random clusters\r\n",
    "X, y = make_blobs(n_samples=1000, centers=5, random_state=42)\r\n",
    "\r\n",
    "# Instantiate the clustering model and visualizer\r\n",
    "model = KMeans()\r\n",
    "visualizer = LearningCurve(model, scoring=\"adjusted_rand_score\", random_state=42)\r\n",
    "\r\n",
    "visualizer.fit(X, y)        # Fit the data to the visualizer\r\n",
    "visualizer.show();           # Finalize and render the figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "不幸的是，对于随机数据，这些曲线变化很大，但是可以指出一些特定于聚类的项。首先，请注意y轴很窄，粗略地说，这些曲线是收敛的，并且实际上聚类算法的表现非常好。其次，对于集群而言，数据点的收敛不一定是一件坏事；实际上，我们希望确保在添加更多数据时，训练和交叉验证分数不会出现差异。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 2.4 快速方法\n",
    "使用关联的快速方法可以实现相同的功能learning_curve。此方法将LearningCurve使用关联的参数构建对象，将其拟合，然后（可选）立即显示可视化效果。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd8HNW5+P/PbNGquso2buDKsY1tjGVaqKaFbsIlBFJNuCTf5HITCAnFCeVyIbTcS/hBCoGbhARCr04MhBogmGIFsIXtx7hiuTfZ6tLuzO+PmV2tpF1pJWuLpOf9evmlnXbm7LE0z8w5Z86xHMdBKaWUSsaX7QwopZTKbRoolFJKdUgDhVJKqQ5poFBKKdUhDRRKKaU6pIFCKaVUhzRQqF7DGPOiMeZb2c5HphnXx8aYamPMDzJwvuOMMdLB9j8aY25Jdz5U7ghkOwMq9xlj1gP/LiKvZjMfInJGutI2xgwAbgbOB4YA24CFwC0isjNd503R1cAbIjKrJxIzxtwE/BRoBMLAcuAqEVkMICJvA6YnzpVCXpKWO/Aw8IGI3NDmmHnA/cAYEQlnIp/9nT5RqJxgjMnaTYsxJg94DTgEOB0YABwN7AKO6EZ6Pf1dDgI+7c6BHeTlcREpBkqBN4Anu5m3bkuh3B8Cvm6Msdoc+g3gEQ0SmaNPFGq/GGPOxr37G4d7Z/r/RGSpt+1a4DJgOLAR+KmIPOttm+9t+wD4JvAbY8xq4N+B94BLgSrg+yLyonfMm8DDIvKgd3xH+47HvdAcBrwPCDBQRL6e4Gt8EzgQmCsiNd667cB/x31PB5gsIqu95T8ClSLyM2PMibh3v/cCVwKvGGPmAD8Rkb96+weALcAXReRfxpijgP8FpgEbgB+KyJsJyvd14ATgWGPML4HZuHfd9wJnAHXAA8DPRcROVK7AzxJ8ZwBEJGyMeQRYYIwZJiI7ot9HRMZ4eTgM+D9gMrAIaDWcgzHmau97O8ANXn4mi8hqY0wIuBW4EAgBzwJXikh9Z+VujCkAfgscB7zlrRsMnA0cmew7qZ6nTxSq27wLyO+B7wJDcasDXvAuDgBrcP/IBwL/BTxsjBkZl8SRwFpgBO7FJLpOcO907wT+L8EdJSns+xfci+VQ4Cbcu9BkTgFeirtYdccBuFUnBwHfAR4FLo7b/kVgpxckRgN/ww2wQ4AfA08bY4a1TVRETgLeBi4XkWIRWYUbJAYCE3CDyDeBS+IOS1SuCXl39d/EvYvfk2T7c8Cfvbw+Cfxb3PbTgR/hluEk4MQ2SdwOHAzM8raPxg0m0Em5e8HkCS9/URcCK0Xkk46+l+pZGijU/vgOcL+IvC8iERF5CLfe+ygAEXlSRDaLiC0ijwOf0boqZ7OI3CsiYe+iALBBRB4QkQjuE8FI3AteIgn3NcYcCBwO3CAiTSLyDvBCB99jKO7d/v6wgRtFpNH7Ln8BzjXGFHrbv4obPAC+DiwSkUVe2bwCLAHO7Owkxhg/cBFwnYhUi8h64H9oHQgTlWtbFxpjqoB63CeQC5JU5RwFBIFfikiziDwFfBifDvAHEflUROpwg3I0rxbu78iVIrJbRKqBn3v5h9TK/SHgAmNMvrf8TW+dyiCtelL74yDgW8aY/4xblweMAjDGfBP3bnOcty1aJx61MUGaW6MfRKTOGBM9LpFk+5YCu70LV/y5xiZJZxdukNkfO0SkIS4/q40xK4BzjDELgXNxq8HALbcvG2POiTs+iNtW0JlSb98Nces24N6pRyUq17aeEJGvG2NKgaeBMuDNBPuNAjaJSHx104Y225ckOfcwoBAo9/5vACzA733utNxF5B1jzE7gPGPMh7g3Gud3dIzqeRoo1P7YCNwqIu2qN4wxB+HWVZ8MLBaRiDHmY9wLRVS6hi7eAgwxxhTGBYtkQQLgVeAWY0yRiNQm2acO96IXdQBQGbec6LtEq598wPJo+wZuuf1ZRC7r5HskshNoxg02y711BwKbOslLQiKy0xjzHWCJMeYvItL2Dn8LMNoYY8UFiwNxqxWj28fE7R9fzjtxn1gOEZH4/EWlUu4Af8J9kjDAyyKyLaUvp3qMBgqVqmDc4z+43SofAJ41xryK2x5QiFtH/RZQhHvB2gFgjLkEmJ6JjIrIBmPMEuAmY8zPcO+Wz8HtdpnIn3HbWZ42xlwBrAIGe+s+FpFFwMfAV40xnwKn4rYNLEmSXtRjuG0EQ3CroqIeBj40xnwR92IZxK3iWS0ile1Saf3dIsaYJ4BbvSe2IbhPbb/oJC8dpSnGmJdxu+Fe2WbzYtz/6x8YY36NW45H0PL08wTwe2PMn3GfNK6PS9c2xjwA3G2MuVxEtnvtM9NF5GVSK3dwA8XPgJkJ8qcyQNsoVKoW4d4dRv/dJCJLcOu378NtCF0NzAcQkeW4deeLcXvpzAD+mcH8fo2Wrpa3AI/jtp+0IyKNuA2rK4FXgH24ga8Ut8cUwA9xL5JVXtrPdZYB7+58MfAF7/zR9RuBecAC3EC6EfgJqf89/idQi9tg/Q5uEPp9iscmcxfwHWPM8PiVItKEW9UzH9gNfAV4Jm77i8D/hxs4VuP2QoOWsr4mut4Ysw83MBrv2FTKHa8d5l3cm4+O2ppUmlg6cZHqD4wxj+P2lrkx23npy4wxU4EKIKTvOfQdWvWk+iRjzOG4d8DrgNNw7+Bvz2qm+ihjzJdwnzgLgTuAhRok+hatelJ91QG4vXhqcKtGviciH2U1R33Xd3FflFsDRIDvZTc7qqdp1ZNSSqkO9bmqp/Ly8hDuy1ZbcO9ulFJKdcyP+07Lh2VlZe06ffS5QIEbJN7OdiaUUqoXOg63J10rfTFQbAE4+OCDycvLy3ZeuqyiooLp0zPyukFO03JwaTm4tBxc6SqHpqYmVq1aBUmGVOmLgSICkJeXRygU6mzfnNRb893TtBxcWg4uLQdXmsshYXV9VgOFMeb3uEMGbxeRdmHSG1TsHtzB0uqA+SLyr8zmUiml+rdsd4/9I+6EJcmcgTsG/mTcUSh/k4E8KaWUipPVQCEib+G+FJXMPOBPIuKIyHvAoDbzGSillEqzXG+jGE3rYYsrvXWdzh1QUVGRrjylXXl5ebazkBO0HFxaDi4tB1c2yiHXA0W3TZ8+vVc2fpWXl1NWVpbtbGSdloNLy8Gl5eBKVzk0NjZ2eHOd64FiE63Htx9D63H3e8xjH63j9tcqWL5tL9NGDOTak6dz0WHj03GqPkHLq2u0vLqmbXl9ZXwRGieSS/fvV64HiheAy40xj+HOA7w3wcQq++2xj9bxtYdb3jFZtqUqtqx/zO1peXWNllfXJCqvZVuqGD9hnZZXApn4/crqWE/GmEdxJ7opxZ2z4EbcSVwQkd963WPvw+0ZVQdc4s2BkFR5efk4YF1Xqp5m/WIhy7ZUtVs/MD/IqXFt5xZWy/RsVssPK36B1lO4WXEHJFrv/mzZtmvXLoaVxs8WCj4r/jgrbn3LZ6vVudzP0VQtqyV9q00GW22L29h6Xevv9Kcla9lZ235qh9KiEN+cMwGA6K9V9Lcr+nvWshzd7iTcf/v27QwbNix5Gk6CYztJs2v5SJxG2+Nbnz9x2q9+toV9Dc20NSAU5PiJI3BwcLzvE38+x3HYu3cfJQMGgOO0SrflmNbnTbotwfqE6SXJR3yZJ9rW8rOl/NqmF1+G7fPaks89dU1EElyX/JZFSX4wrtxb79P2iLZJOG32aL+9fQLt13U/vUTX2p7K8xGj93Km2cGokkY2V4dYJMNosMfx0Y/PbnfOROKqnsaXlZWtb7u9zw0K2J1AkfeTh4nYfascVP/WcuPQ9kag5eYg/qbBwmp1U2AlvAmxvBuQuPO0udGIv82IvxmK3WS1vcGyiMuLu3HT3rqEF74PNg3koMFF3tmcuDO1rIlfjs9Dstlhk++fWCr7W/G5saIfo/mNrkjxHG3Ku7Gpifw2I04UB7fx3SPaT4z4wJIx/POKyzs8VyzdTgJFrlc9ZcS0EQMTPlGMHVTIrWcc5i7E/W/FB1eH1r8sieKuhdXp3U/UuvXrGDduXOKNTsKPWFbr87ZKO/kCjtNyQUh01+3mvc024Oa/L2XT3jraGjOwkJtOP7Td+uiTT7KnFPdi0/rCtG7DOiaOHx+3zmp3bOunprZpthxntflr9sVti+6b6GnM6iTfPl/rPMen6WBj22Ggmcue/Ih1u+tpa8KQAn735alYVrSfuoWFEysvnw/Wrl3HhIkT8AEWjltWbS/4lrvN/W5xPd4TXCTjL1Sxa1iicrRi17bYBT4+KIDTUg7e2duWYUvAaLlIRu+QY+dp9Yvs/rji2Tc5d0rLhW/swEa+e0QloySPu8873P299fJgO2BhYxN9UvEeY2h50gGnZRsAdmzZ/ekte59JtM1L12l3rIPj2O23x56W7Ljztz8vSdJqyXfrY+rqaskvyG917J7axG8YnDe1ozcPukYDBXDtydNb1fFF3X727IzXiZb7qigrm5TRc3ZVcSiQsLzuOKfnyquc3ZTlYH20bUcI2800RxqJ2GEcJ0LEjmA7ESKO+9OxI+6lywGf5efHJ4zlP55d1S6tq04Yy5Th+QnO0qJpp49xg3vfmGWpcByHsN1EfVMNDc3uv/rmGs6ZsjHh/mebtfxDNra5MPe/moDG+n2xmyvLsvD7E5fBsKKGHjunBgpaGnzueO1Tlm+rYtqIQVxz8iHacJZEXyyv7gSAtk8qUZblw48vdoc8b7rb5nTfPyv5bGc9k0sLuPyYMbH1fZVtR2horo0FADcY1MZ9riFit58IL1ntjwUU5g3wLpK+VhdLCx/Elttviz21JtzHlySdtttaL9PJuSzL5+2TKJ2WfWl7bIJ0onn/bNVnGGNalcs/P3uamsb2Tw+DC4e3W9ddGig8Fx02vldf6DKtt5RXwgDgRLDt/Q8AXTFvemmfCgyO49AUaXAv+E3tA0B9cw1N4fbVbVEBf4jCvAHkB4u9f0UUeJ8/3fQWtU172x1TnD+EL0w6P51fK+cl+t2cMGwWSytfb7d+xti5PXZeDRSqV8qVANBXRexwy5OAFwjaPhnYTuJ5wSzLR36giMFFI2MX/9bBoIiAP3l12sThZQkvfBNKD6WlvaV1+1H0KSAqvuk4+t/utDqmdSOJ1Wo0o9btNS2njB4ZbRS0sOK7JMZlrU0fx9Z5bZt+qy1tGsJoOaeDQ9AqpCQ0xD2dl/fJBxxOQV4xK7csZl/DLgYVDGfG2LlMGNa+vbC7NFConOIGgDBNdj376nfhODYRJ6wBoAc5jkNjuC7u7r/WCwYtTwbNkeT123n+AopDg8nPcwNAQbAoFgwKgsXkBQqS/p8kY3uNvgF/iPHDZlKQV8yqrR9QVb+dQQXDKW4+iNnjvrif37z3C/mKKS4Y3G791FFfYOqoL6TtvBooVEZEA0BzpMF7Aug4ADTa+6htbN8TDTQAdCYcaWoJANFgENdg3BCu83rjtOez/BQEixmQP9QLBEXtngr8vv2/bNhOBMvykecPEfTnEwoUEgoWePX6MLjogFYXPh3nKbs0UKj9YjsRwpHUA0CqTwBdvSPtL2zHpjFWDdQSCNxg4C6H7aakx4cChQzIL3Uv/l4giD4J5AeLCfpDPV720V5Kfl+QPH+IgD9EQbCIYKDjHl8qd2igUF3mOA51TdXUNVbRFGnAcRytAurElqo1rN3xMbWNeygKDWbCsFmMHDSx1T6O49AcaWzVHrA7vJFPNla2NBqH60j2Fo7fF/Qu+CNangTyWp4E8gNF+Hz+tH9X245gWRaBQB5BXz55/nwK8oozcm6VHhooVMpsx6amYTd1jfuIOBF8lg+f5e/XASAVW6rWtGqcrWnczdLK19m2bx1Bf6jT7qJ797qNmaFgEYMLR8SeAvKDxRTktVQLBTtoIE4X9+UyG5/PT9AfIs+fT16wgFCgpRpJ9X4aKFSnmsONVDfupqGphmif721713V6h5wN0bdYbe8diOg/x7Hdz7Ydtz7usx23T3Sb3WYfJ4KTdJvdUs3WKm2biN1+nCeAbfvWxT4H/SEK8wa2axzesXU3B0+cSihQmBMX3uibwu7TghsY8vM67sWkej8NFCqp+qYaahuraAzXeVVL7oUq2R1yU7ie0pKx7S62ToKLctuLbOsLcISq8B7qN1a2XJxtm0QX95ZjW7Zlg8/ye//cpyyfL0DAysNn+alu2JXkKItjJv0b+cFiAv5gwj2qt0fIDxanL+OdcBudLYL+kFuNFCwgP1joPkmqfkMDhWrFcWxqG/ZS27SXiN2MFa1eirN2x8cJj125dTFsXdxjeanZu63dumh+Wl2Y/cHYBbrVdl+bi3fsIu5PnI7lx+eLptN6/9bpeMd76xONJxUv2ZuzxfmDKc5v39UxWxzHwXZs/P4Aeb4QwUA+oWAhef587VzQz2mgUACEI83UNO6mvqk6NlhgsqqO2sY9SdMZPdi0u6j6vIuqleSiHF1nxV3gN6zfwMQJk1rtHx0uobdJ9ubshNJZWchNi/h3F6KBoSCvuEe6v6q+RX8j+rnGcB21DVXUN9d6I4+2jE6aTMAfSvhCVnH+EKaPPr5H8hW0tpMfLOp8x14g2nazdufH1DbsoSh/MBNKM9+mE313IdboHCggFCxsPeKsUglooOiH3O6t+6hr3EtzpCFWzZKKnTWVSd/azfYdci4bOWhiRgOD4zjYRAj48lq9uxBIw3sSqu/TQNGP2E6E6vrd1DXtw3bsWHVPqprC9SyrfBPL8jFx2Gy27lub1Ttk1SL27oI/j6Bf311QPUsDRT/QHG6kumE3Dc0t3Vu7Wt3gOA4Vm/5BU7ieg0ccwfhhhzJx+GHpybDqUHTSG8vye0NghAgFC/XdBZU2WQ0UxpjTgXsAP/CgiNzeZvt84C5gk7fqPhF5MKOZ7MXc7q17aAw3eE8P3b+IfL57OTuqNzK0aDTjSmcCtHoj2529K242MHcHb0LI+HkAtNqjq6JDYAT8Le8uhIJFBAP67oLKjKwFCmOMH/gVcCpQCXxojHlBRJa32fVxEUlt4leF49jUNFRR17SXiB32uoHu311mdcNuVm19n6A/nxljToy72DsMH3hgu+6zraZ1dJzY2E+2HYmbKtJ2pwuNTRFJq2Bj4ebb9vZzZ4b0QpDlgEObSWT6DtuJYGERDIQIWCEGFo2gIFik7y6orMnmE8URwGoRWQtgjHkMmAe0DRQqBeFIs1e91Hn31q6I2GGWbnwd24lw6OiTCQULY9vyg8UJL14ts4m55w+Q+GWyjmz072DEwNYTI7kv19lef/8wtu0OQBgfeFo+e29ox55yvDmGo2l4gcyOTnwfmx/a6rGyS0VsCIzYuwshQsGi2LsLn/t2UJQ3ICN5USqZbAaK0UD85LiVwJEJ9vs3Y8zxwCrgShFJPKFuP9XYXEdNQxUN4Rrvot1599aukK3vU9O4h7FDpjF8wEGx9bZtZ/xlMZ/liwUfuhF8EokFHmzv7e+wG1zsSGy9ExdsopPctwpKseW2VW/g4LSaOtNddvDHvbvgTuTTM99HqXTI9cbshcCjItJojPku8BBwUioHVlRUpDVj6dTZ2PuO49Ds1NPs1GM7zWm7+621d7I9vJygVYSvegirVq2KbbPws9W/Ly3njeqtcxA4bj1ZS/Ub0SBjY+EjYHWti2pvLYeepuXgykY5ZDNQbALGxi2PoaXRGgARiR8k50HgzlQTnz59OqFQaL8ymA3l5eWUlZUl3Bbr3tpcjW1H0vqiVENzLe+ufg+f5efwiadTkj8kts3BYVDBcApD6asS6agc+hMtB5eWgytd5dDY2NjhzXU2A8WHwGRjzHjcAHER8NX4HYwxI0Vki7d4LrAis1nMDU3hRmr2s3trVziOw7LKN2mONDJ15BdaBQkAHz4K8krSdn6lVG7JWqAQkbAx5nLgZdzusb8XkU+NMTcDS0TkBeAHxphzgTCwG5ifrfxmQ6x7a3MDPt/+dW/tivU7l7K7djPDSg5k7JBprbY5jkNRaGCf62mklEouq20UIrIIWNRm3Q1xn68Drst0vrLJcRz21e+ivmlfS/dWX+Zeotpbv4PPtn1IKFDI9NEnJAgITsLJ3ZVSfVeuN2b3G2731l3U2tupaRiU0S6a8XlYuvF1HBxmjDmRvARzGifrEquU6rs0UGSZ2711Dw3h2rjurdmp1lmx5V3qmvYxrnQmQ4tHt9tuO5nvEquUyj4NFFngOA61jXvd0VvtxticDNm0pWoNm6tWMSC/lMnD5yTcJ88fSviUoZTq2zRQZJDtRLz2h+rY6K3ZDhAA9U3VLN/8Dn5fgJlj5yYccdR2bApDg7KQO6VUtmmgyICmcINbvZSh7q1dYTs2SyvfIGw3MX308RQlCQY+n59C7RKrVL+kgSKN6pr2Uduwl6ZwZru3dsXa7R9RVbeNAwZMYNSggxPu4zgOxXnaJVap/koDRQ+zHZuahj3UNe7DdjLfvbUr9tRuZc2Oj8gPFjNt9LEdBALtEqtUf6aBoodEu7fWN1eDk9kRSLujOdLI0so3AJg5Zi5Bf/LhTrRLrFL9mwaK/dTSvbXOnRwIH+R4DY3jOCzf9A4NzTVMHDabwUUHdLBvhKJ8bcRWqj/TQNENibu35u7TQ1ubq1axdd9aBhWOYEIn05kG/fmEAgUZyplSKhdpoOgC246wr8Ht3uo4tjd7XO+qkqltrGLFlncJ+PKYOWZuhwHO7RI7MIO5U0rlIg0UKWjp3loN+HK+/SEZ246wdOMbROwwM8ec1OkIsG6XWJ1dTan+TgNFEo7jUN9c7XZvjTS47Q+97Omhrc+2L2Ffw05GDTqYkYMmdriv4zgU5pVol1illAaKtlp1b8Wd5L43tT8ks6tmE+t3LqUwbwBTRx6dwhE2JaEhne+mlOrzNFC0sX3vBmwn4lYv5Xr3pRQ1hetZVvkmFhYzx5xEwJ/X6TH5wRL8fv31UEpB779V7mGWRZ+qbnEch4pNb9EYrmPyiMMZWDgshWO0S6xSqoUGij5u4+4V7Kj+nCFFoxhXOjOlYwL+kHaJVUrFaKDow6obdiNb3yPoDzFjzIkpPSnZjk1hnnaJVUq10EDRR0XsMEs3vo7tRJg++njyg0UpHeezfBTpuxNKqThZba00xpwO3AP4gQdF5PY220PAn4AyYBfwFRFZn+l89kartr5PTeMexg6ZxvAB41I6xnEcCkMD+lQbjVJq/2XticIY4wd+BZwBTAMuNsZMa7PbpcAeEZkE3A3ckdlc9k7b923g893LKQoNwhxwZMrHOTjaJVYp1U42q56OAFaLyFoRaQIeA+a12Wce8JD3+SngZGOM3u52oLG5jopNb+Gz/Bw69iT8vtQfGguCRdolVinVTjavCqOBjXHLlUDb29/YPiISNsbsBYYCOztLvKKioluZqo3swMHp1rE9ZdWqVd06znEctoaX0uw0MMQ/iS2f72ILu1I81qbAN4SAb0u3zp0O5eXl2c5CTtBycGk5uLJRDn329nH69OmEQsnnWEhm29512I6dhhylZtWqVRx8cOKZ5jqzbudSGrZWMaxkLIcdmFovpyi/L8DwAQd167zpUF5eTllZWbazkXVaDi4tB1e6yqGxsbHDm+tsVj1tAsbGLY/x1iXcxxgTAAZCirfI/cze+h18tu1D8gIFTB99QpeChKNdYpVSHcjmE8WHwGRjzHjcgHAR8NU2+7wAfAtYDFwAvC4i2a0XykHhSDNLN76O49jMGH0ieV19WU67xCqlOpC1JwoRCQOXAy8DK4AnRORTY8zNxphzvd3+DxhqjFkN/Ai4Nju5zW0rt7xLXdM+xg2dQWnJmC4dq6PEKqU6k9U2ChFZBCxqs+6GuM8NwJczna/eZOveNWyqWsWA/FImjzi8y8c7OBSHBqchZ0qpvkLfzO7F6puq+XTTO/itADPHzsXn6/p8GfmBIgL+YBpyp5TqKzRQ9FK2Y7O08g3CdhNTRh5NUajro73aToRiHSVWKdUJDRS91NodH1NVt40RA8YzerDpVhpBX4hQsLCHc6aU6ms0UPRCe2q3smb7v8gPFnHI6OO61RDtODaFIZ0PWynVOQ0UvUxzpImllW8AMHPMXIL+rr9UCGiXWKVUyjRQ9CKO47B88zs0NNcwYdgsBheN7HZahXnFWH1gLnClVPrplaIX2Vz1GVv3rmFQwXAmDp/d7XRsJ0KxjhKrlEqRBopeorZxLyu2/JOAL8iMsXPx7cfTQH6gWLvEKqVSpoGiF7DtCEsrXydih5k26lgK87rfCK1dYpVSXaWBohdYvb2cffU7GTVoMiMHTdqvtAK+PO0Sq5TqEg0UOW5XzSbW7fyEgrwBTB35hf1Ky3Fs7emklOoyDRQ5rCncwLLKN7GwmDlmLgF/3v4laFkaKJRSXaaBIkc5jsOnm96iMVzHpBFzGFQ4fL/TLAiWaJdYpVSX6VUjR23cvYLt1RsYUjSS8aUz9zs924lQkq9dYpVSXaeBIgfVNOxGtr5H0B9ixpi5PfIUoKPEKqW6SwNFjrEdm082voHtRDhk9PHkB4t6IM0IRdolVinVTVmduEi1tyeylprm3YwdMpURA8b1SJoBX16PBBylVP+kTxQ5ZEf15+yzN1EUGoQ54KgeSdNxHIrytKeTUqr7svJEYYwZAjwOjAPWAxeKyJ4E+0WAZd7i5yJybtt9+orG5jqWVf4DsJg55iT8vp75r7EsKMrXQKGU6r5sPVFcC7wmIpOB17zlROpFZJb3r88GCcdxWLbpTZojDQzxT2BAwdAeSzs/qKPEKqX2T7auIPOAh7zPDwHnZSkfOWHDrmXsqtlEafFYBvhG91i6tmNTkt9zQUcp1T9ZjuNk/KTGmCoRGeR9toA90eU2+4WBj4EwcLuIPNdZ2uXl5eOAdd3NW21kBw6ZK5NGu5rN4Y/wE2B0cA5+az/fvo7jI0ChX9+dUEqlbHxZWdn6tivT1kZhjHkVOCDBpp/GL4iIY4xJdmU+SEQ2GWMmAK8bY5aJyJpUzj99+nRCoa7P/rZt7zpsx+7ycd0RtptZvPpZwGHWQSdTWjKWVatWcfDBB+932o5jM7hoJAV5xfuf0SwoLy+nrKws29nIOi0Hl5aDK13l0NjYSEVFRdLtaQsUInJKsm3JC1AkAAAgAElEQVTGmG3GmJEissUYMxLYniSNTd7PtcaYN4HDgJQCRW+wcsti6pr2ctDQGZSWjO3RtP2+YK8NEkqp3JKtNooXgG95n78FPN92B2PMYGNMyPtcChwDLM9YDtNs6961bNojlOQP5eARh/do2o7j7NecFUopFS9bgeJ24FRjzGfAKd4yxpg5xpgHvX2mAkuMMZ8Ab+C2UfSJQFHfVMOnm97GZ/mZOfYkfD5/j6ZvWejkREqpHpOV9yhEZBdwcoL1S4B/9z6/C8zIcNbSznFsllW+QdhuYtqo4ygO9fwFXbvEKqV6kl5NMmztjo/ZU7eV4QPGMWaw6fH03S6xg3s8XaVU/6WBIoOq6raxZvu/yA8Uccio47Asq8fPEQoUEPB3vbeXUkolo4EiQ5ojTSzd+DoODjPGziUvkN/j53CnOtW2CaVUz0qpjcIYUwgsACaIyFeNMVOAKam8AKfcXkjLN79DfXMNE4bNYkjRyLScx+8LaJdYpVSPS/WJ4je4QeVQb7kSuDEtOeqDtlStZuveNQwsGM7E4el5acjtEquD/ymlel6qgWKmiFwLNAGISE0Xju3X6hr3sXzLP/H7gswcOxdfunojWY5OTqSUSotUr1qN8QvGmPwuHNtv2Y7N0srXidjNTBt1bFpfgssPlqQvCCml+rVUryxvGWMWACFjzInAEyR4m1q1tnpbOXvrdzBy4CRGDZqUtvPYToQB2iVWKZUmqQaKnwIWUA3cCXwA3JSmPPUJu2o2s27nxxQES5g26pi0nisUKNQusUqptOm015Mxxg9cIiK3AremP0u9X1O4gWWVb2JhMXPsSQT8PTd0eFvaJVYplW6dPlGISAT4bgby0ic4jsOnm96iMVzLpOFlDCocntbz+SztEquUSq9Uq55eN8ZckNac9BGVe1ayvXoDgwtHMn7YoZ0fsB8cx6EwpKPEKqXSK9VBAecDVxlj6oFa3PYKR0TSe7vcy9Q07GHllsUE/CFmjDkxIwPzFWsjtlIqzVINFHPSmos+IGKHWVr5OrYTYeaouRmpDsrPK9IusUqptEvpKiMiG4BNQLH3b5O3TnlWbfuQ6obdjBk8hREDx6f9fLYToSSk82ErpdIvpUBhjJmDOwXps8BzwGfGmNnpzFhvsqP6cz7fVUFRaBBm5FEZOWcoUEAwoF1ilVLpl2q9xT3At0XkYBGZDFwK3Ju+bPUejeE6KirfwrJ8zBxzEgFfMO3ndBybwpCO66SUyoxUA0WRiLwWXRCR14Gi9GSp93Ach4rKf9AUqefgEUcwoGBoRs7rswI6J7ZSKmNSDRR13tAdABhjTgDquntSY8yXjTGfGmNsr1or2X6nG2PEGLPaGHNtd8+XLht2VbCzppLS4jEcNHR6Rs6pXWKVUpmWaq+nHwJPGWOigwPmAf+2H+etAM4H7k+2g/dG+K+AU3GHNf/QGPOCiCzfj/P2mH31O1m17QPy/AVMH3NCWmarS8zRLrFKqYxKKVCIyIfGmEmAaVklzd09qYisADCmwzmjjwBWi8hab9/HgHlA1gNF2G5maeUbOI7N9DEnEAoUZuzc+XnF2iVWKZVRqc5wdwrwoYhUeMuDjDGzvbaKdBkNbIxbrgSOTPXgioqKbp20NrIDB6fDfXaGV1FrVzHAN5o9W+rZs2VVt86VzKpVidNzHJtCXyl+3+YePV+uKi8vz3YWcoKWg0vLwZWNcki16ukuIL477D7gF23WtWKMeRU4IMGmn4pI2oconz59OqFQ17uPbtu7Dtuxk27funcd6zZuoSR/CEdO+CI+n39/stnOqlWrOPjggxNuC/jyGDZgbI+eL1eVl5dTVpae2QB7Ey0Hl5aDK13l0NjY2OHNdaqBwhKR2G22iNheG0JSInJKimknswmIvyqO8dZlTX1TDZ9ufhuf5WfmmJN6PEh0xMGhKF+7xCqlMi/Vyu5qY0ys2sf7XJueLMV8CEw2xow3xuQBFwEvpPmcSTmOzbLKNwlHGpky8uiMNyj78FEQLMnoOZVSClIPFFcDzxljXjXGvIb7hvaPuntSY8yXjDGVwNHA34wxL3vrRxljFgGISBi4HHgZWAE8ISKfdvec+2vtjk/YU7eF4QPGMWbwlIyeO9olNnM9q5RSqkWqvZ4WG2OmAWcADrBSRD7q7klF5FncYNN2/WbgzLjlRcCi7p6np1TVbWPN9nJCgSIOGXVcFi7YDsX5Oq6TUio7OnyiMMY8bIyJTqpg4U6D+jPgJWPMv6c7c7kgHGli6cY3cHCYMeZE8gL5Gc9DflC7xCqlsqezq89sEfnE+/wNYLmIHAKU4VYL9XnLN/+T+uZqxpfOYmjxqIyf37ZtfcFOKZVVnQWKhrjPx+JVF4lIJXTyskEfsLnqM7bsXc3AgmFMGpGdrnl5gfysPMUopVRUp20UxphRwB7gRODGuE19+upV17iP5Zv/id8XdLvCZqHqx8GhSEeJVUplWWeB4jbgY6AJeCc6zpIx5ijg8zTnLWtsx2Zp5RtE7GZmjD4xa4Pw+fBRkKddYpVS2dXhbbKIPAnMBM7GHcQv6nPgsjTmK6vWbC9nb/12Rg6cyMhBk7KSB+0Sq5TKFZ1WPYnIVmBrm3V9brChtTs+YdnGN9hTtw1wCPrzmTrq2KxdqB0dJVYplSO0zyVukHhLHmVP3VaibfTNkQZ2Vm/s+MA0KggW47MyN0SIUkolo4ECWLbxjYTr1+78OMM5cdmOdolVSuUODRRAVd32hOtrG/ZkOCeuPH9Iu8QqpXKGBgpgUOHwhOuLsnBX7zg2haFBGT+vUkolo4ECmDF2bsL1E0pnZTgnYFl+CrVLrFIqh6Q6H0WfNmGYO5zVso1vUFW3naL8QUwoncXIQRMzmg/HcQhY+dolVimVUzRQeCYMO5QJww7tdIa79HIIWUVZOrdSSiWmVU85JD9YjKWjxCqlcoxelXKE7USy0niulFKd0UCRI/L8+YS0S6xSKgdpoMgBtmNTqKPEKqVyVFYas40xXwZuAqYCR4jIkiT7rQeqgQgQFpE5GcpiRvl8fgrzsjNCrVJKdSZbvZ4qcEejvT+FfeeKyM405ydrHMehMK9Eu8QqpXJWVgKFiKwAMMZk4/Q5xmZA/tBsZ0IppZKyHCd7M5oaY94EftxB1dM63Nn1HOB+EfldZ2mWl5ePA9Z1N0+1kR04GZzl1W8FKfBpbyelVE4YX1ZWtr7tyrQ9URhjXgUOSLDppyLyfIrJHCsim4wxw4FXjDErReStVA6cPn06oVAo1ezGZPKFO8eJMLRkLKFAQWxdeXk5ZWXZmZ87l2g5uLQcXFoOrnSVQ2NjIxUVFUm3py1QiMgpPZDGJu/ndmPMs8ARQEqBojcI+vNbBQmllMpFOds91hhTZIwpiX4GTsNtBO8TtEusUqq3yEqgMMZ8yRhTCRwN/M0Y87K3fpQxZpG32wjgHWPMJ8AHwN9E5KVs5DcdfJZPu8QqpXqFbPV6ehZ4NsH6zcCZ3ue1wKEZzlpGOI5DYWiAdolVSvUKOVv11Jc5OJSEhmQ7G0oplRINFFlQECzC79cR3pVSvYMGigxznAhF+TrVqVKq99BAkWEBf4hQoDDb2VBKqZRpoMgg27EpzNMusUqp3kUDRQb5LB9F+u6EUqqX0UCRIY7jUKCjxCqleiENFBmiXWKVUr2VBooMyQ9ol1ilVO+kgSIDbCdCsXaJVUr1UhooMiDoCxEKapdYpVTvpIEizRzHpjCkg/8ppXovDRTpZvkoCmm1k1Kq99JAkWaFecXaJVYp1atpoEgj24lQrF1ilVK9nAaKNMoPFBPwB7OdDaWU2i8aKNJEu8QqpfoKDRRpEvDlaZdYpVSfkJVXhY0xdwHnAE3AGuASEalKsN/pwD2AH3hQRG7PaEa7yXFsivK1bUIp1Tdk64niFWC6iMwEVgHXtd3BGOMHfgWcAUwDLjbGTMtoLrvLsnSUWKVUn5GVJwoR+Xvc4nvABQl2OwJYLSJrAYwxjwHzgOXpz+H+KQiWYFlaq6eU6htyYZS6bwOPJ1g/GtgYt1wJHJlqohUVFd3KTG1kBw5Ot44FdzjxQl8pfl9lt9MoLy/v9rF9iZaDS8vBpeXgykY5pC1QGGNeBQ5IsOmnIvK8t89PgTDwSE+ff/r06YRCoS4ft23vOmzH7vZ58/z5DC0Z3e3jy8vLKSsr6/bxfYWWg0vLwaXl4EpXOTQ2NnZ4c522QCEip3S03RgzHzgbOFlEEt3CbwLGxi2P8dblLLdL7OBsZ0MppXpUtno9nQ5cDZwgInVJdvsQmGyMGY8bIC4CvpqhLHaLdolVSvVF2WpxvQ8oAV4xxnxsjPktgDFmlDFmEYCIhIHLgZeBFcATIvJplvLbKcexKcrTnk5Kqb4nW72eJiVZvxk4M255EbAoU/naH5ZlUZSvgUIp1fdoH84ekq9dYpVSfZRe2XqA7UQo0TexlVJ9lAaKHhAKFOoosUqpPksDxX6ynYjOYKeU6tNy4c3sjAmHw9h2xy/ThZsj2E7qb2b7LD9+8mhqatrf7MX0ZFq9WS6Wg8/nIxDoV382SvWfQFFdXY3f7+/0j3xQ4YguDeHh9/VsEU6cOLFH0+utcrUcmpqaqK+vp6SkJNtZUSpj+kWgCIfD+P1+Cgs7fxnO8jldChRBf6hH58Rubm4mLy+vx9LrrXK1HPLy8qirqyMcDuuTheo3+kUbhW3bafmj9ln+Hg0Sqnfw+/2dVmEq1Zf0i0CRLn6fP9tZUFmgNweqv9FA0U2W5dMX7JRS/YJWsibxxMefc9cbK1mxfR9Thw/gJ3OncOGsA2Pb/VbqTxN79uxh/vz5AOzcuROfz8eQIe4Lek8++WRKdfHXXXcdl112GRMmTEi6zyOPPEJJSQnnnntuynlL5tVXX+Xee+/FcRzC4TCXXHIJX/7yl/c7XaVU76OBIoEnPv6cbz36fmy5Yuve2PKFsw7EwsLXhWqnwYMH8/zzzwNw7733UlhYyKWXXtpqH8dxcDrolnvbbbd1ep6vfe1rKeepI01NTdx00008/fTTjBgxgqamJjZt2r8R3qPfz+fTpzClept+GSiuXljOU59sSLjNwWHLvvqE2/79iQ+4/qVlWLSvo77g0IO485yuTSiyYcMGvve97zF16lRWrFjBH/7wB+6++25WrVpFY2MjZ5xxBpdffjkAF198MTfccAOTJ0/mqKOO4qKLLuKtt96ioKCAX//61wwdOpS7776bwYMHM3/+fC6++GLKysp47733qK6u5rbbbmP27NnU1dVxzTXXsGbNGiZNmkRlZSW33norU6dOjeWruroagEGD3BcJ8/LyGD9+PAA7duzghhtuoLKyEsuy+O///m8OPfRQHnjggVgw/MpXvsI3vvGNhN9v5cqV/PrXv6apqYmDDjqIn//85yn1RlNKZY/e3iXQHEl8Z59s/f5Yu3Yt8+fPZ9GiRYwYMYIf/OAHPPPMMzz//PO8++67rF69ut0x1dXVHH744bzwwgvMmjWLp59+OmHajuPw1FNPcfXVV/OrX/0KgIcffpjS0lIWLVrE97//fVasWNHuuKFDh3Lssccyd+5crrrqKv7617/GevncfPPNHHPMMSxcuJBnnnmGiRMn8sknn7Bw4UKeeuopHnvsMf7yl78gIu2+XyAQ4IEHHuCPf/wjzz77LMYY/vSnP/VUUSql0qRfPlHceU5Z0rv/5nAjc+5+mYqte9ttmzFyIEuuPKNHx3U68MADmTFjRmz5pZdeYuHChYTDYbZv387q1auZNKn1qOz5+fmccMIJABxyyCEsWbIkYdqnnXYa4E4LG606Ki8v57LLLgNgypQp7dKOuv3221m5ciWLFy/md7/7HYsXL+bWW2/lgw8+4H//938BCAQCFBcXU15ezmmnnUZ+fj4Ap5xyCkuWLOHYY49t9f0++ugjVq9ezUUXXQS470ro9JZK5b5+GSg685O5U1q1UUT9+MQpPd4ltqCgIPZ5/fr1PProozz99NMMGDCAH//4xzQ2NrY7JhhsCVR+v59IJJIw7Wgjuc/nS7pPR6ZMmcKUKVM4++yzOfPMM7n11luBrnUPjf9+juNw3HHHcdddd3U5L0qp7NGqpwQunHUgD118JDNGDiTgs5gxciAPXXwkXzlsXFq7xNbU1FBYWEhxcTHbt2/nnXfe6fFzzJ49mxdffBEAEWHNmjUJ8/Hhhx/GllesWMGoUaMAOPLII3nssccAiEQi1NTUMGfOHF599VUaGhqora3ltddeY86cOe3SPeyww/jwww/ZuHEjAHV1daxfv76nv6JSqofpE0USF846sFV3WOhal9juOOSQQ5gwYQJnnHEGo0aNYvbs2T1+jq9//etcc801nHnmmUyaNImJEydSXFzcah/Hcbj//vv52c9+Rn5+PoWFhfz85z8H4Prrr+f666/n8ccfx+/3c/PNNzNz5kzOOussLrjgAsBteDfGsGFD6w4DpaWl3HrrrVxxxRU0NzcD8KMf/Yhx48b1+PdUSvUcq6Mumb1ReXn5OGDd9OnTCYVCQMsopKm8r9Acbkw41pOFRTAQ6smsJlRbW0tRUVHa0g+Hw0QiEUKhEOvXr+fb3/42f//733Nu3KJ0l8P+6Mrv0/4qLy/Xdhy0HKLSVQ6NjY1UVFQAjC8rK1vfdntWrg7GmLuAc4AmYA1wiYhUJdhvPVANRICwiLSvz8iQrrw3kcvq6uqYP38+4XAYx3G4+eabcy5IKKVyS7auEK8A14lI2BhzB3AdcE2SfeeKyM7MZS0xX5qrnTJlwIABPPPMM9nOhlKqF8lKoBCRv8ctvgdckI18pEpHiVVK9We5UOfwbeDxJNsc4O/GGAe4X0R+l2qiXn1bzMSJE2MNqB2xCbfJgYPPCtBI5mZbq62tzdi5clmulkNzc3PC3mLpUl5enrFz5TItB1c2yiFtgcIY8ypwQIJNPxWR5719fgqEgUeSJHOsiGwyxgwHXjHGrBSRt1I5f081ZluWj6A/cxPo5HIjbiblcjk0NTUxY8YMbczOIC0HVwYasxNKW6AQkVM62m6MmQ+cDZwsIgm7XonIJu/ndmPMs8ARQEqBoqeku0usUkrluqy8cGeMOR24GjhXROqS7FNkjCmJfgZOA5KHvB62fucyFi39DX9+93qe/9cvWbvjk/1Oc8eOHVx55ZWccsopnH/++Vx22WWsW7euB3KbXGVlJccff3y7GdnmzZvHJ58k/07PPPMMN998MwCPPvoozz33XMK0zz777E7Pv3DhwtjysmXLuOWWW7ryFZJ66qmnOOecczjnnHM4++yzefXVV3skXaVUa9lqo7gPCOFWJwG8JyL/zxgzCnhQRM4ERgDPetsDwF9E5KVMZG79zmW8u7ploL09dVt5Sx4FYMKwQ7uVpuM4XH755Zx33nncfffdAKxcuZJdu3bFRmYF9z2HnjRmzBhGjRrFkiVLOOKIIwBYs2YNtbW1HHpoat/l4osv7vb5N23axF//+lfOOeccAGbMmNFqbKvu2rp1K7/97W959tlnKSkpoba2lt27d+9XmjoPtlKJZavXU8KR6ERkM3Cm93kt0L2rcic+XLeI9TuXJt7oQF3zvoSb3ln1OOXrX0y4bVzpTA4ff2bSc7733nsEAoFWF90pU6YA8P7773PPPfcwYMAA1qxZwyuvvMIf/vCH2KiwF1xwAfPnz6euro4rrriCrVu3Yts23//+9znzzDP5xS9+weuvv47f7+fYY4/lmmta9zQ+66yz+Nvf/hYLFIsWLeKss84C4PXXX+c3v/kNzc3NDBo0iF/84heUlpa2Oj5+Do2KigoWLFgAwDHHHBPbp7Kykquvvpr6eneI9uuvv57Zs2fzP//zP6xZs4Z58+bxpS99ialTp/L73/+e+++/n6qqKhYsWMDGjRspKCjg5ptvZsqUKdx77718/vnnbN26lc2bN/Otb32Lb37zm63ytGvXLoqKimJDlBcVFcXaNDZs2MCNN97I7t278fv93HPPPYwdO5Y777yTt99+G8uy+N73vseZZ57ZquzXrVvHyy+/zPPPP8+f//xnmpubOfTQQ7nxxhvx+7UKUvVfevuUgOPYCdfbSdan4rPPPuOQQw5Jun358uUsXLiQIUOGUFFRwTPPPMMTTzyB4zhceOGFHHHEEWzcuJHhw4fzu9+5nb+qq6vZs2cPr7zyCi+99BKWZbFvX/sgd8YZZ3Deeedx/fXXEwgEWLRoEffccw8AZWVlPPHEE1iWxZNPPsmDDz7ItddemzSf1113HTfccAOHH344d9xxR2z90KFD+cMf/hB74/tHP/oRzzzzDFdddVUsMIAbFKPuvfdepk2bxq9//WsWL17MNddcE5vTYv369TzyyCPU1NRwxhlncPHFF7caDHHKlCmUlpZy8sknc/TRR3Pqqady0kknAfDjH/+Y73znO5x66qk0NjZi2zZ///vfWblyJc8//zx79uzhggsuiI1HFS37sWPHsmbNGl588UUeffRRgsEgN910EwsXLuS8887r+D9YqT6sXwaKw8efmfTuvzncyN+W/oqquu3ttg0uPIB5s69IS55mzJjB2LFjqa2tpby8nFNOOSV2t3zqqaeyZMkSjjvuOO644w7uuusu5s6dy5w5cwiHw4RCIRYsWMDcuXM58cQT26VdWlrK5MmTWbx4MaWlpQQCAQ4++GDArcK58sor2bFjB01NTYwZMyZpHvft2xebCwPcdo63334bcKttbr75ZlauXInP50tpsL/y8nLuvfdeAI4++miqqqqoqakB4NhjjyUvL48hQ4YwZMgQdu3axQEHtHSi8/v9PPjggyxbtozFixdz22238emnn3LJJZewbds2Tj31VIBYz7fy8nLOOuss/H4/paWlHH744Sxbtozi4uJY2QMsXryYioqK2LhVDQ0NDB06tNPvolRf1i8DRWcOGX0C//zsyXbrZ4yd2+00J0+ezMsvv5x0eyqzvI0fP55nnnmGf/zjH/zyl7/kqKOO4vLLL+epp55i8eLFvPTSSzz88MMJJwM666yzWLRoEUOHDo1VOwHccsstzJ8/n5NPPpn333+f++67r1vf749//COlpaU8//zz2LbNzJkzu5VOVHzXU7/fn7DtxrIsZs6cycyZM/nCF77AggULuOSSS7p8rviydxyHL33pS1x11VXdy7hSfZAOM96Gg8OEYbM43lzM4MIDsCwfgwsP4HhzcbcbsgGOOuoompqaePzxlncLV65cmXDSoeiw3fX19dTV1fHqq68yZ84ctm3bRkFBAfPmzePSSy9l+fLl1NbWUl1dzQknnMCCBQtiM8u1ddppp/GPf/yjVfsEuNVXI0aMAEjYsynegAEDKCkpieU5vjdTdXU1w4YNw+fz8fzzz8fmvygqKkr64tycOXN44YUXALdKavDgwe1Gsk1m27ZtfPrpp7HllStXMmrUKIqLiznggANiPaCampqor69nzpw5vPjii0QiEXbv3s2SJUsSBrOjjz6al19+mV27dgFQVVW13/OFK9Xb6RNFGxYWPsvHhGGH7ldgaJeuZXHffffx85//nAceeIBQKMTo0aNZsGAB27Zta7XvIYccwvnnn8+Xv/xlwG3MnjZtGm+//TZ33nknPp+PQCDATTfdRG1tLd///vdjExwla18YMGAAs2bNYufOnbFqFoDLL7+cH/7whwwcOJAjjzySysrKDr/HbbfdxoIFC7Asq1Vj9le/+lX+8z//k+eee47jjjsudpdujMHn83Huuedy/vnnt5qb+/LLL2fBggWcc845FBQUcPvtt6dcnuFwmDvuuIPt27cTCoUYMmQI//Vf/wXAnXfeyQ033MA999xDMBjknnvu4dRTT+Wjjz5i3rx5WJbFT37yE4YNG8batWtbpTtp0iSuuOIKvv3tb2PbNsFgkBtuuIHRo0ennDel+hodZrwN27bx+bL3oJXLbyRnUi6Xgw4znnlaDq5sDTOuVU9tZDNIKKVULtKrolJd1NeewpXqTL8IFD6fr8ffeFb9VyQS0SdP1a/0i8bsQCAQ60Hk9+f23BLNzc2xOvD+LBfLwXEcIpEIkUhEh/pQ/Uq/uS0qKSkhLy8vp4MEkNF5DnJZLpaDZVnk5eVRUlKS7awolVH96raot9wFZqI3TW+g5aBUbug3TxRKKaW6RwOFUkqpDvWOupiu8QM51xDaFdG3rPs7LQeXloNLy8GVjnKIu14mHE+/L76ZfSzwdrbzoZRSvdBxZWVl77Rd2RefKD4EjgO2AJEs50UppXoDPzAS9/rZTp97olBKKdWztDFbKaVUhzRQKKWU6pAGCqWUUh3SQKGUUqpDGiiUUkp1qC92j81pxpjfA2cD20VkurduCPA4MA5YD1woInuMMRZwD3AmUAfMF5F/ZSPfPckYMxb4EzACcIDficg9/a0cAIwx+cBbQAj37/EpEbnRGDMeeAwYCpQD3xCRJmNMCLfsyoBdwFdEZH1WMt/DjDF+YAmwSUTO7o9lAGCMWQ9U43bvD4vInGz/begTReb9ETi9zbprgddEZDLwmrcMcAYw2fv3HeA3GcpjuoWBq0RkGnAU8B/GmGn0v3IAaAROEpFDgVnA6caYo4A7gLtFZBKwB7jU2/9SYI+3/m5vv77ih8CKuOX+WAZRc0VklojM8Zaz+rehgSLDROQtYHeb1fOAh7zPDwHnxa3/k4g4IvIeMMgYMzIzOU0fEdkSvesRkWrci8No+lk5AHjfqcZbDHr/HOAk4ClvfduyiJbRU8DJ3l1lr2aMGQOcBTzoLVv0szLoRFb/NjRQ5IYRIrLF+7wVt0oG3Ivnxrj9Kr11fYYxZhxwGPA+/bQcjDF+Y8zHwHbgFWANUCUi0WkZ479vrCy87Xtxq2Z6u18CVwO2tzyU/lcGUQ7wd2NMuTHmO966rP5taKDIMSLi4P6i9HnGmGLgaeAKEdkXv60/lYOIRERkFjAGOAKYkuUsZZQxJtpmV57tvF2fDTsAAAWQSURBVOSIY0VkNm610n8YY46P35iNvw0NFLlhW/Rx0fu53Vu/CRgbt98Yb12vZ4wJ4gaJR0TkGW91vyuHeCJSBbwBHI1bhRDtbBL/fWNl4W0fiNug25sdA5zrNeI+hlvldA/9qwxiRGST93M78CzuzUNW/zY0UOSGF4BveZ+/BTwft/6bxhjLa+DcG/f42Wt59cn/B6wQkf+N29SvygHAGDPMGDPI+1wAnIrbZvMGcIG3W9uyiJbRBcDr3h1mryUi14nIGBEZB1yE+52+Rj8qgyhjTJExpiT6GTgNqCDLfxvaPTbDjDGPAicCpcaYSuBG4HbgCWPMpcAG4EJv90W43d5W43Z9uyTjGU6PY4BvAMu8unmABfS/cgB3xM6HvK6hPuAJEfmrMWY58Jgx5hbgI9zAivfzz8aY1bidIi7KRqYz5Br6XxmMAJ41xoB7ff6LiLxkjPmQLP5t6OixSimlOqRVT0oppTqkgUIppVSHNFAopZTqkAYKpZRSHdJAoZRSqkPaPVblPGPM+7ijq+YBB+P2Kwf4SES61B3QGPMy8N3ORhs1xvwBeEBE3u16jhOmFwCagQIRaejG8UOAb4vIL3oiP0p1hXaPVb2GNy7UEhEp7WAfv4hEMper1PRAoJgEvCMiB/R45pTqhD5RqF7NGHMKcBewDDgUuNYYUwr8Jy0jsf5IRN709q8EThGRlcaYd4B3gS/gDqT2iIj8zNvvHeAW72Wnh4F9wFTc4RLexr27d+Lm1hiO+9JTAFgoIr/tJN+VuC+OfRE4ALhDRH7jvXj3a+AE3CHI94rI8cCvgKHeC4rVInKcMeZq3DeT84B63CelpXFBaQFwPjAEd1j357xzHwvcCRR52fmRiLxmjJmKO2x3qVd2/yMif/LeEP4z7hhUYaBCRL6a2v+Q6gu0jUL1BTOB+0TkUBF5EVgkIkeIyGHA13Ev5MmMAY7HHcH2+95kOYkcgjuPyCG4YzGd6K2/D3hZRA4BrvDSSlVIRI7CHdvoLm8Ij9m4gWuaN0fFPG/f/wB2eXMUHOet+733PWcB/4UbYOLtEZHDgW/jjp2EF0SfBq700p8N/Msbe+sR4AfeHAjHAdd7TzJnenmdJiIzvbyofkSfKFRfsEJEPohbnuwNlTIK9w54tDGmVER2Jjj2CRGxgSpjjAATgXUJ9ntWRBoBjDEfefu9AczFnTAG+f/bu3fXKKMgjMM/iUW8gNpYKCR2rxc0aJNCsEoldlb+ATZqYSUWFiJYWFhISgvbRAQtUmtExEuMmEWFgRBbK0W0iixYzISEDfuZuAZx8z7NsrDfnvMVu7Mzs8yJ+CRpeh37nqjrFiR9J7OaeWA7cFfSE2Cq4fpRSVeBPWTm1BnkJurxJTBUweAkMBcRr2rtNvBV0jEyY7hf4yMgs4pD5PiM25LGgafk2AjbRBworB/86Hg+CVysmUkDZFlmsMu1K/sFbbp/Jtb6uvVY9Z51vOURMgCNAbckHe+8sLKPSXIk9TtJQ8BCl/df6tkMNOxlC/C5spNVak9jZHZxU9LRiFhsvj3rFy49WT/axXJWcJ78ZbxRpqmpnpKGWS5J/RFJe4HBKqFdIQe9HSB7JDsq8AFsI7/4lw6tubDGJZ4DI5JGa72Bml77EWhLOrdiL4cl7aw+TDsiHpLltX3A7h5u0/4zDhTWjy4DU5LekuWcbxu41iXgtKQPZL/idY/rDQOPJbWAFvAImKmzCR4A7yU9i4gvwA1gVtIbMpD8VpXfzgJ3ao1Z4ERE/ATOkCOrW3U/42SjfAR4IWmOPInweu3HNgn/PdasB1UCWoyItqT9wAxwKiLm//HWzP4a9yjMenMQuFeHMW0FrjlIWL9xRmFmZo3cozAzs0YOFGZm1siBwszMGjlQmJlZIwcKMzNr9Ateg/VZDOIhHAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import RidgeCV\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_energy\r\n",
    "from yellowbrick.model_selection import learning_curve\r\n",
    "\r\n",
    "# Load a regression dataset\r\n",
    "X, y = load_energy()\r\n",
    "\r\n",
    "learning_curve(RidgeCV(), X, y, scoring='r2');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 3 交叉验证分数\n",
    "通常，我们通过查看给定模型的F1，精度，召回率和准确性（用于分类），或者确定系数（R2）和误差（用于回归）来确定其是否最优。但是，现实世界中的数据通常分布不均，这意味着拟合模型在数据的某些部分上的表现可能要好于其他部分。Yellowbrick的CVScores可视化工具使我们能够使用不同的交叉验证策略直观地探索这些性能差异。\n",
    "\n",
    "\n",
    "|可视化器|CVScores|\n",
    "|-|-|\n",
    "|快速使用方法|cv_scores()|\n",
    "|模型|分类，回归|\n",
    "|工作流程|选型|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 3.1 交叉验证介绍\n",
    "交叉验证首先对数据进行无序处理（以防止意外的排序错误）并将其拆分为k个折叠。然后k模型适用于k-1/k的数据（称为训练分割），并对1/k的数据进行评估（称为测试分割）。每个评估的结果被平均在一起作为最终得分，然后最终模型适合于整个数据集进行操作。\n",
    "\n",
    "在Yellowbrick中，CVScores可视化工具将交叉验证的分数显示为条形图（每折一个条形），所有折的平均分数绘制为水平虚线。\n",
    "\n",
    "![](https://www.scikit-yb.org/en/latest/_images/cross_validation.png)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 3.2 分类\n",
    "在下面的示例中，我们显示了如何可视化分类模型的交叉验证得分。将占用数据加载为之后DataFrame，我们创建了StratifiedKFold交叉验证策略，以确保每个分组中的所有类均以相同的比例表示。然后，我们CVScores使用f1_weighted评分指标而不是默认指标“准确度”来拟合展示台，以便更好地了解分类器中所有折的精确度和召回率之间的关系。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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OWnQYF566SUgJLKRI0cybNgwhg0bxltvhfHy119/ndGjR3PhhRcycOBAJkyYQKabCD366KMMGjSIIUOG8LOf/QwIR8CXXnopQ4YMYciQIUyfPh2AF154gSFDhjB48OBKO9jDDjuMG264gaFDhzJ79mwKCwsZNWoUp59+Oueddx5Lly7drvdlzpw5dOvWja5du5Kbm8upp57Kyy+/vFW5jz/+mH79+gHQr1+/SmUKCwtZtmwZRx99dMWyli1bVpTPzc2lV69etT7qF5GGbRE8D4wzs6eAI4BV7l5jt9CObNCgQdx9991885vf5LN5H9N/4GA+ePcdAP7yxCP0OiyfH/z8MtYWr+HXF/2Qo446it13352HHnqI5s2bM3/+fMaPH88zz4Q7RM6dO5epU6ey5557MmLECAoKCujTp0+lmPfffz+vvPIKubm5rF69GoDf/e53tGnThr/+NdyXftWqVSxZsoRbbrmFZ555hrZt23Luuefy0ksvMWDAANatW0fv3r2ZOHEiGzduZPTo0dx999106NCBadOmcfvtt/Ob3/ymUtznn3+eBx98kM2bN9O06ZbjiW7dulV0hZVbsmQJnTtvufd5p06dmDNnzlbvX8+ePXnxxRcZM2YM//jHP1i7dm1FN9GNN97INddcw9tvv53xvV+9ejWvvvoqY8aMyeqzEpEt4jx99EngeKCjmRUBVwG7ALj7vYQbcQ8i3LB8HbB1p/E2umb6O1z74pYdzRsXDQKg72+nVSy78qTeXHzMAXS55mkWrQ63iz28Swdm/exUfvinmTzw3y33UV9w5Rns1a5VjXF79uxJUVERL7zwAof2PbLSc+8WvMFbM2cw9U9PArCxpIRFixax5557cu211/LBBx/QtGlT5s+fX/Ga3r17V+xAe/bsycKFC7dKBGbGxRdfzIknnsiAAQOA0JqYNGlSRZl27doxa9Ys+vbtW3Gq7ZAhQ5g1axYDBgwgJyeHk08+GYB58+bx4YcfVvThb968mT322GOrbR06dChDhw6t0y6vSy65hF/96lc8++yz9OnTh9067sGcxav4zx+msN8hfVi+SzvmLS9mafFXvLlgGX267g6E8Zjx48czevRounbtWkOUzDI2yZ+YW/FnXTb/RXY0sSUCdx9Rw/NlhBue17mrTj6Eq04+ZKvl6T/mtWvXUnTV8K3K3fedI7nvO0du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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.model_selection import StratifiedKFold\r\n",
    "from sklearn.naive_bayes import MultinomialNB\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_occupancy\r\n",
    "from yellowbrick.model_selection import CVScores\r\n",
    "\r\n",
    "# Load the classification dataset\r\n",
    "X, y = load_occupancy()\r\n",
    "\r\n",
    "# Create a cross-validation strategy\r\n",
    "# 浇查验证策略\r\n",
    "cv = StratifiedKFold(n_splits=12, random_state=42)\r\n",
    "\r\n",
    "# Instantiate the classification model and visualizer\r\n",
    "model = MultinomialNB()\r\n",
    "# 交叉验证获得分数\r\n",
    "visualizer = CVScores(model, cv=cv, scoring='f1_weighted')\r\n",
    "\r\n",
    "visualizer.fit(X, y)        # Fit the data to the visualizer\r\n",
    "visualizer.show();           # Finalize and render the figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "我们得到的可视化结果表明，尽管我们的平均交叉验证得分非常高，但是在某些拆分中，我们的拟合MultinomialNB分类器的效果明显较差。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 3.3 回归\n",
    "在下一个示例中，我们显示如何可视化回归模型的交叉验证得分。在以加载enerygy数据，我们实例化了一个简单的KFold交叉验证策略。然后，我们通过CVScores使用r2计分指标对展示台进行拟合，以了解所有折处回归器的确定系数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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3bp1zJkzB6JjaLrKlgjyAKpVq0b16uVzmXB5bUexFEuxFKsSxCqyS103lImIJFxlaxEUa9myZaxcubJMn/n+++/Jzc0tvWA5UKyKj1W7dm3q1q0bY41Edg47RYvg7bffZv78+aUXTPPLXxY171c8FKviY82fP5+339a1BSKlqfQtgmXLllGnTh3atGlT5s+uWrWKWrUymYxx2ylWxcdq0qQJM2bMYNmyZWoZiJSg0rcIVq5cyR577LG9qyE7qHr16pW5y1AkaSp9IhApSZUqmT6OQCS5lAhERBJOiaCcmBlXX3114fKGDRvo2LEjF1988Xas1Y7jrbfeomvXrpx00kmMHDmyyDLffvstffr04YwzzuD000/nzTffBGD8+PH06NGDc845hx49etCyZUtmz978mSOXXHIJp512Wuz7IbIzqvSDxTuKmjVr8sUXX/Dzzz9To0YN3n33XRo1arS9q1VmeXl5ZGWV9OCxrdvmkCFDGD16NI0aNaJnz5507tyZ5s2bb1buvvvu4+STT6Z3797MnTuX3//+90yePJnu3bvTvXt3Vq1aRW5uLpdeeikHHXRQ4edeeeWVChuwluTJuqqIxx8/OavwZd6wPhVYm3goEZSjTp068cYbb9CtWzcmTpzIqaeeSk5OeCb3mjVruPnmm/niiy/YsGED/fv3p0uXLuTm5jJw4EDWrAkPjrr++utp164dU6dO5Z///Cf16tVjzpw5HHzwwdxxxx1b9Hk/+uijjBkzhqysLJo3b86dd97J6tWrufnmm5k5cyYA/fv3p2vXrkyYMIH777+f/Px8OnXqxDXXhCdEHnbYYZx99tm89957DB48mBo1ajB06FBWr15NvXr1uPXWW2nYsOFWfy8zZsxgv/32o2nT8KjZU089lddee22LRFClSpXCgd0VK1ZQs049Plzw42Zlnn5qHO2OPYEPF/xI+6b1WbVqFaNHj+avf/0rV1xxxVbXcWf9Y6/I/dpZv8MkUCIoR6eccgr33nsvJ5xwAu7OmWeeWZgIRo0aRceOHbn11lv56aefOOusszjqqKOoX78+o0ePpnr16sybN48BAwbw7LPhyY2zZs1i4sSJNGzYkF69epGTk0P79u03izly5EgmT55MtWrV+OmnnwB44IEHqF27Ni++GJ4Xv3z5chYvXswdd9zBs88+y+67707fvn159dVX6dKl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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import Ridge\r\n",
    "from sklearn.model_selection import KFold\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_energy\r\n",
    "from yellowbrick.model_selection import CVScores\r\n",
    "\r\n",
    "# Load the regression dataset\r\n",
    "X, y = load_energy()\r\n",
    "\r\n",
    "# Instantiate the regression model and visualizer\r\n",
    "cv = KFold(n_splits=12, random_state=42)\r\n",
    "\r\n",
    "model = Ridge()\r\n",
    "visualizer = CVScores(model, cv=cv, scoring='r2')\r\n",
    "\r\n",
    "visualizer.fit(X, y)        # Fit the data to the visualizer\r\n",
    "visualizer.show();         # Finalize and render the figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "与我们的分类CVScores可视化一样，我们的回归可视化表明我们的Ridge回归器几乎在所有折中都表现非常出色（例如，产生较高的确定系数），从而导致总体R2得分更高。\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 3.4 快速方法\r\n",
    "上面的相同功能可以通过关联的快速方法来实现cv_scores。此方法将CVScores使用关联的参数构建对象，将其拟合，然后（可选）立即显示可视化效果。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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3bp1zJkzB6JjaLrKlgjyAKpVq0b16uVzmXB5bUexFEuxFKsSxCqyS103lImIJFxlaxEUa9myZaxcubJMn/n+++/Jzc0tvWA5UKyKj1W7dm3q1q0bY41Edg47RYvg7bffZv78+aUXTPPLXxY171c8FKviY82fP5+339a1BSKlqfQtgmXLllGnTh3atGlT5s+uWrWKWrUymYxx2ylWxcdq0qQJM2bMYNmyZWoZiJSg0rcIVq5cyR577LG9qyE7qHr16pW5y1AkaSp9IhApSZUqmT6OQCS5lAhERBJOiaCcmBlXX3114fKGDRvo2LEjF1988Xas1Y7jrbfeomvXrpx00kmMHDmyyDLffvstffr04YwzzuD000/nzTffBGD8+PH06NGDc845hx49etCyZUtmz978mSOXXHIJp512Wuz7IbIzqvSDxTuKmjVr8sUXX/Dzzz9To0YN3n33XRo1arS9q1VmeXl5ZGWV9OCxrdvmkCFDGD16NI0aNaJnz5507tyZ5s2bb1buvvvu4+STT6Z3797MnTuX3//+90yePJnu3bvTvXt3Vq1aRW5uLpdeeikHHXRQ4edeeeWVChuwluTJuqqIxx8/OavwZd6wPhVYm3goEZSjTp068cYbb9CtWzcmTpzIqaeeSk5OeCb3mjVruPnmm/niiy/YsGED/fv3p0uXLuTm5jJw4EDWrAkPjrr++utp164dU6dO5Z///Cf16tVjzpw5HHzwwdxxxx1b9Hk/+uijjBkzhqysLJo3b86dd97J6tWrufnmm5k5cyYA/fv3p2vXrkyYMIH777+f/Px8OnXqxDXXhCdEHnbYYZx99tm89957DB48mBo1ajB06FBWr15NvXr1uPXWW2nYsOFWfy8zZsxgv/32o2nT8KjZU089lddee22LRFClSpXCgd0VK1ZQs049Plzw42Zlnn5qHO2OPYEPF/xI+6b1WbVqFaNHj+avf/0rV1xxxVbXcWf9Y6/I/dpZv8MkUCIoR6eccgr33nsvJ5xwAu7OmWeeWZgIRo0aRceOHbn11lv56aefOOusszjqqKOoX78+o0ePpnr16sybN48BAwbw7LPhyY2zZs1i4sSJNGzYkF69epGTk0P79u03izly5EgmT55MtWrV+OmnnwB44IEHqF27Ni++GJ4Xv3z5chYvXswdd9zBs88+y+67707fvn159dVX6dKl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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import Ridge\r\n",
    "from sklearn.model_selection import KFold\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_energy\r\n",
    "from yellowbrick.model_selection import cv_scores\r\n",
    "\r\n",
    "# Load the regression dataset\r\n",
    "X, y = load_energy()\r\n",
    "\r\n",
    "# Instantiate the regression model and visualizer\r\n",
    "cv = KFold(n_splits=12, random_state=42)\r\n",
    "\r\n",
    "model = Ridge()\r\n",
    "visualizer = cv_scores(model, X, y, cv=cv, scoring='r2');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 4 特征重要性\n",
    "特征工程过程包括选择所需的最小特征来生成一个有效的模型，因为模型包含的特征越多，它就越复杂（数据越稀疏），因此模型对方差引起的误差就越敏感。消除特征的一种常见方法是描述它们对模型的相对重要性，然后消除薄弱的特征或特征的组合，然后重新评估，以确定在交叉验证期间模型是否更好。\n",
    "\n",
    "许多模型形式描述了要素相对于彼此的潜在影响。在scikit-learn中，决策树模型和树的集合（例如，Random Forest，Gradient Boosting和Ada Boost）会feature_importances_在拟合时提供 属性。Yellowbrick FeatureImportances可视化工具利用此属性对相对重要性进行排名和绘图。\n",
    "\n",
    "|可视化器|FeatureImportances|\n",
    "|-|-|\n",
    "|快速使用方法|feature_importances()|\n",
    "|模型|分类，回归|\n",
    "|工作流程|选型,特征提取|\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 4.1 基本使用\r\n",
    "让我们从一个例子开始；首先加载分类数据集。\r\n",
    "\r\n",
    "然后，我们可以创建一个新图形（这是可选的，如果Axes未指定，Yellowbrick将使用当前图形或创建一个图形）。然后，我们可以为FeatureImportances展示台添加，GradientBoostingClassifier以可视化排名特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\r\n",
    "\r\n",
    "from yellowbrick.datasets import load_occupancy\r\n",
    "from yellowbrick.model_selection import FeatureImportances\r\n",
    "\r\n",
    "# Load the classification data set\r\n",
    "X, y = load_occupancy()\r\n",
    "\r\n",
    "model = RandomForestClassifier(n_estimators=10)\r\n",
    "# 显示特征对于分类的重要程度\r\n",
    "viz = FeatureImportances(model)\r\n",
    "viz.fit(X, y)\r\n",
    "viz.show();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "相对于其相对重要性（即最重要特征的重要性百分比）绘制特征。可视化器还包含features_和 feature_importances_属性以获取排名的数值。\n",
    "\n",
    "对于不支持feature_importances_属性的 模型，FeatureImportances可视化工具还将为coef_ 许多线性模型提供的属性绘制条形图。但是要注意的是系数重要性的解释取决于模型。\n",
    "\n",
    "使用带有coef_属性的模型时，最好设置 relative=False为绘制系数的真实大小（可能为负）。如果数据集没有列名或打印更好的标题，我们也可以指定我们自己的标签集。在下面的示例中，我们为案例加了标题以提高可读性："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xm8VXW5x/EPooBXnDGnVNLwa4pKHjHlmkOZplFqmYakUmZZWXkdMtOSzByuOXazLEvMHEjMtOwKTnidUDyKIOpjDjin4oCiBAjcP36/k5vtPvM+e699+L5fr/M6e83PXnvt9ezfsNbqs2TJEszMzIpmuXoHYGZmVokTlJmZFZITlJmZFZITlJmZFZITlJmZFZITlJmZFZITlFmBSfqmpJckzZW0Zr3j6a0kzZS0S73jsKX18XVQ9SNpFrA2sKhk9KYR8UI31rkL8MeI+GC3guvcNscBz0XEibXaZhuxjAU+HBFfrncs3SVpBeBNYPuIeLCVeT4B/Bz4MDAbOD0iftPKvGOBE4D5JaNPjoj/7macs4CvRcRN3VlPbyRpDGnf7FjvWBrR8vUOwPhskb7YkpaPiHfrHUdXSOptx/PawABgZqWJOYFdA3wf+A2wLXCrpHtaS2jA+KIl70Y+5qxn9bYvdK8haXvgbGBz4GngexExOU/7Cumk9EHgFeCMiLhQ0krA/wL9Jc3Nq9oUOJWSEk55KSv/Av4VMDoNaiXgA8AvgJ2AucA5EXF+B+IeDDwFfBU4GRgIHA80A78DNszbPiLPPwY4DHgAOAh4Efh2RNycp68H/BrYEXgtv9ff5mljgaHAv4DPAT/Mf30k7QM8ERFbt7a/SvcFcA5wHKk0+8OIuDhPXxE4BdgPWA2YAXwqIua18xmNAX4MrEUq2ZwYEZdV2F/9gTOA/fOoP+U4Nsr7BOANSfdGxCfKFl8DWAW4NCKWAFMlPZLjaS1BVSRp1fxe9gIWAxcDJ0XEIkmbAL8FtgaWABNJn9Ebki4lfaZ/lbSI9JnfS1kpvrSUVeFzO0rS70mf0WGk/XwzcHhEvCZpAHARsCfQF/gHMDIiXqrwPpYAQyLi8Tw8jnzsSxoEjCMdS4tJiX/niFhcIb7Nc3z7As8Ah0TEfXmd25CO5Q8DN+R1/aOzNQjtHJdtxXoc8F3SZ/8C8K2IuLm1YykiSkvMDcVtUAUkaX3getKJcQ3gGOBqSWvlWV4GRpIO0K8A50jaJiLeJn2JX4iIgfmvo9WFo4DPkE4Oi4G/kk5y6wOfBI6UtEcn3sbHgCHAAcC5pKql3YAtgP0l7Vw27xPAIOAk4M+S1sjTrgSeA9YjJYlTc7VWi72BCTnu35GS8fj83rfO81TcXyXrWAdYNb/XQ4FfSlo9T/s50ASMIH0W3wcWt/UZ5QR/PrBnRKycl53Wyn46AdgeGEZKANuRktljeV8BrFYhOZFP0FcAX5HUV9IOpMR2Ryvbass44F3SSfejwO7A1/K0PsBppM/gI8AGwNgcw0GkE/hn8z7vaHVh6ed2GfAdYB9g57yd14Ff5nkPIX0+GwBrAocD87rwHo8mHUtrkUqnPyQl3Eo+Rzr2VgOuA/4HQFI/Uql1HOlzv4KUxLqireOyYqySBBwBDM/H1h7ArLxMxWOpi7EVgktQ9fcXSS3VG5MjYh/gy8DfI+LvefyNku4j/bq9JCKuL1n+NkmTgI8D93cjjvMj4lkASR8D1oqIk/O0JyX9FvgS6ddzR/w0Iv4FTJL0NnBFRLyc13876SR4W573ZeDcXAoYL+lo4DOSJgP/CXwmr2uapIuAg4Fb8rJ3R8Rf8ut56fu7tA7sr4Wktph3gb/n0qck3UsqCW4fEc/nee/K76Gtz2gCKckPlfRMRLxIKhlWMhr4Tsm++QlwIfCjVuYvdwWpdHFeHv5my+fYiv0ljSwZ3pxUatyLlAjnAW9LOgf4OnBhLo08nud/RdLZpB8S3VH+uR0OHBERz8G/S8fPSDqI9PmsSWpbnE4qjXfFQmBdYKP8nm5vY947Wj7bXEo8Mo/fnnTePD8fr3/Ox0mntXNcVow1l1L7A5tLeiUiZpWso7vHUuE4QdXfPhXaoDYCvijpsyXjVgBuBZC0J+kEsSmpFPwfpKqn7ig9qW0ErCfpjZJxfWn7C12utPplXoXhgSXDz+cve4unSb+i1wNei4i3yqZt20rcFXVgf71a1gbyTo5vEKkN6IkKq231M4qItyUdQCpV/U7SncDREfFohfWsl99T6ftbr733lN/XZqRf+Z8HbiSVWP8m6YWyk1+pP5W3QUnaLsf+YkmCX468byWtTUqAHwdWztNe70iMbSj/3DYCrpG0uGTcIlLp4VJS6elKSauRqmRPiIiFndzmmaSS36T8Pn8TEae3Mu8/S16/AwzIbZzr8f7jtd1jsJJ2jsuKsUbE45KOzNO2kDQROCrXlHT5WCoqJ6hiepbUrnBY+YRcz3w1qRRxbUQslPQXUjUMVK6yeJt08LdYp8I85V+4pyJiSFeC74L1JfUp+dJvSKpWeQFYQ9LKJUlqQ+D5kmXL3+9Swx3YX22ZTWqH2IT3t+m0+hkBRMREYGJJG9ZvSSf4ci+QTs4tHSE2zOM6YijwWN4WQEi6nlTN21qCquRZUs++Qa10VjiVtF+3zG1C+5CrvLLyz2Cp401SX1JVVanyZZ4FvhoRd7YS40+An+Q2zr8DQarSLfcO7z/WnwPIx9DRwNGShgK3SJra0t7ZQS/y/uN1Ayr/iGlVe8dlW7FGxOXA5ZJWIZWQziC133bnWCokJ6hi+iOpwXsP4CbSr9vtSdUsc0hF/FeAd/OvsN2Bh/KyLwFrSlo1IubkcdNIB/opQD/eq65ozb3AW7kx9nxgAantYcWImFql91jqA8B3JV1Aaof4CKn67FVJdwGnSTqG9EvzUFJVRmteAj4labmIWEx6v23tr1blBunfA2fnqqaXSPX699P2Z7Qwv76JVFqcS6ryq+QK4ERJU0kn7R/ndXfEA8CQ3CZ3K7AxqU2jU93GI+LFXL10lqQf5Xg/BHwwIm4jlZrmAHNy29uxZat4KW+7xWOkEsdngEmk9pP+7YTxa+Bnkg6JiKdze+uIiLhW0q6kHwsPk7rdL6T1/TkNOFDSTOBTpDatls4NI4FHSclkDqmE1tp6WnN3Xu4ISb8itdtuB0xuY5k+uaNHqRVo47hsLdbcBrU+cCfpx9M8Uu0GdO9YKiR3kiig3IawN+mL/Qrp1+WxwHL5l9V3ST10XgcOJJU2WpZ9lHSgPinpDaVecJeSSgCzSCeM8e1sfxHpRDeM1CNvNqmdY9Wqvcml3UOqnpoN/AzYLyJezdNGAYNJvwSvIfUsa6tb/lX5/6uS7m9vf3XAMaRql6nkXoSkz6HVzyj/HZVjfo10kvxmK+s/hXQCnZ63c38e166IeILURnY+6cR9G+lX+UWdeH8tDiYl84dJ+2kCqQ0EUullG9KJ8nrgz2XLnkY6Mb4h6Zj8w+hbOY7nSSWq59rZ/nmkz2WSpLeAKaTOM5BKQRPye3wkv89LW1nP94DPAm+Qfsj8pWTaENKPhrmkRHNBRNzaTlxLiYgFpCrVQ/M2vgz8jaWvLSs3gpRIyv/aOi5bi7U/cDrpu/JP0o+74/MyXT6WisoX6lpdyRcyWoOTdA/w65ZLE6x6XMVnZtYJ+RKJIJViRgNbka6HsipzgjIz6xyRquZWAp4kVUm3dhmBdYOr+MzMrJB6XQmqubm5PzCc1B10UTuzm5lZffUldciZ2tTUtFRnk16XoEjJqTMXlJqZWf19nLLbdPXGBPUiwKabbkq/fv3qEsBDDz3E0KFD67LtzmiUOKFxYnWc1dcosTrOrlmwYAGPPfYYVLgdWG9MUIsA+vXrR//+7V0b2HPque3OaJQ4oXFidZzV1yixOs5ueV+TjC/UNTOzQnKCMjOzQnKCMjOzQnKCMjOzQnKCMjOzQnKCMjOzQnKCMjOzQuqN10GZ1c2MeVcx446r2p+xABolTmicWJfFOMfseHrV1lXOJSgzMyskJygzMyskJygzMyskJygzMyskJygzMyskJygzMyukqnQzl3QCcCDpdumLgW9ExD2tzDsWmBsRP+/kNoYB60XE37sZrpmZNYBul6Ak7QCMBLaJiK2A3YBnu7veCoYBe/XAes3MrICqUYJaF5gdEfMBImI2gKRZwJ+APYF5wIER8XjpgpIOA74O9AMeBw6KiHckfRE4iVQim0NKeicDK0raETgtIsZXIXYzMyuoarRBTQI2kPSYpAsk7VwybU5EbAn8D3BuhWX/HBHDI2Jr4BHg0Dz+x8AeefznImJBHjc+IoY5OZmZ9X7dTlARMRdoIpWEXgHGSxqTJ19R8n+HCosPlXS7pBnAaGCLPP5OYFwuYfXtboxmZtZ4qtKLLyIWRcTkiDgJOAL4Qp60pGS2Je9fknHAEbmU9RNgQF7f4cCJwAZAs6Q1qxGnmZk1jmp0kpCkISWjhgFP59cHlPy/u8LiKwMvSlqBVIJqWecmEXFPRPyYVCrbAHgrz29mZsuAanSSGAj8QtJqwLukzg5fJ/XsW13SdGA+MKrCsj8C7iEloXt4LwGdmZNeH+Bm4EHgGeAHkqbhThJmZr1etxNURDQDI8rHSwI4MyKOK5t/bMnrXwG/qrDOz1fY1GvA8G6Ga2ZmDcJ3kjAzs0LqsQcWRsTgnlq3mZn1fi5BmZlZITlBmZlZITlBmZlZIfVYG5TZsmjLFb9IU1NTvcNoV3Nzc0PECY0Tq+OsPpegzMyskJygzMyskJygzMyskJygzMyskNxJwqyKtrv8Ybj84XqH0TGNEid0OdZFZx1U5UCsllyCMjOzQnKCMjOzQnKCMjOzQnKCMjOzQnKCMjOzQnKCMjOzQupQN3NJ6wDnkp5o+wbwEnBkRDzWg7FViuOHEXFqLbdpZmb10W4JSlIf4BpgckRsEhFNwPHA2j0dXAU/rMM2zcysDjpSgtoVWBgRv24ZEREPAkg6Ftgf6A9cExEnSRoM3ABMAUYAU4GLgZ8AHwBGR8S9klYCfgEMBVYAxkbEtZLGAJ8D/gPYJK/3+5JOB1aUNA2YGRGju/3uzcyssDrSBjUUaC4fKWl3YAiwHTAMaJK0U578YeAsYLP8dyCwI3AM75WCTgBuiYjtSEnwzJy0yOs7ANgSOEDSBhHxA2BeRAxzcjIz6/2600li9/z3AHA/KRENydOeiogZEbEYmAncHBFLgBnA4JLlf5BLRJOBAcCGedrNETEnIv4FPAxs1I04zcysAXWkim8msF+F8X2A0yLiwtKRuYpvfsmoxSXDi0u22Qf4QkRE2fIfK1t+UQfjNDOzXqQjJahbgP6Svt4yQtJWwJvAVyUNzOPWl/SBTmx7IvCd3AkDSR/twDILJa3QiW2YmVmDajdB5aq5fYHdJD0haSZwGnB5/rtb0gxgArByJ7b9U1LniOl5nT/twDK/yfNf1ontmJlZA+pQ1VlEvEDqrVfuvPxXbmjJsmNKXs9qmRYR84BvVNjWOGBcyfDIktfHAcd1JGYzM2tsvpOEmZkVkhOUmZkVkhOUmZkVkhOUmZkVkq8vMquiew/cnKampnqH0a7m5uaGiBMaK1arLpegzMyskJygzMyskJygzMyskJygzMyskJygzMyskNyLz6yKblq8CjdN/Ue9w+iARokTOhPrccOHtD+TNQyXoMzMrJCcoMzMrJCcoMzMrJCcoMzMrJCcoMzMrJCcoMzMrJDqkqAk7SNpiaTN6rF9MzMrvnqVoEYBd+T/ZmZm71PzC3UlDQR2BHYF/gqcJGk54H+ATwDPAguB30fEBElNwNnAQGA2MCYiXqx13GZmVlv1KEHtDdwQEY8Br+YE9HlgMLA5cBCwA4CkFYBfAPtFRBPwe+BndYjZzMxqrB63OhoFnJdfX5mHlweuiojFwD8l3ZqnCxgK3CgJoC/g0pOZ2TKgpglK0hqkarwtJS0hJZwlwDWtLNIHmBkRO9QoRDMzK4haV/HtB1waERtFxOCI2AB4CngN+IKk5SStDeyS5w9gLUn/rvKTtEWNYzYzszqodYIaxftLS1cD6wDPAQ8DfwTuB+ZExAJSUjtD0oPANGBE7cI1M7N6qWkVX0TsWmHc+ZB690XEXElrAvcCM/L0acBOtYzTzMzqr0jPg/qbpNWAfsBPI+Kf9Q7IzMzqpzAJKiJ2qXcMZmZWHL4Xn5mZFZITlJmZFVJhqvjMeoPdlnuTpqameofRrubm5oaIExorVqsul6DMzKyQnKDMzKyQnKDMzKyQnKDMzKyQ3EnCrIpWWvgxHp1S7yjatxI0RJyQYoV36xyF1YNLUGZmVkhOUGZmVkhOUGZmVkhOUGZmVkhOUGZmVkhOUGZmVkg162Yu6QTgQGARsBj4BnAGcExE3FerOMzMrDHUpAQlaQdgJLBNRGwF7AY8W4ttm5lZY6pVCWpdYHZEzAeIiNkAkv49g6RfAcOBFYEJEXFSHr8XcDbwNnAnsHFEjKxR3GZmVie1aoOaBGwg6TFJF0jaucI8J0TEtsBWwM6StpI0ALgQ2DMimoC1ahSvmZnVWU0SVETMBZqArwOvAOMljSmbbX9J9wMPAFsAmwObAU9GxFN5nitqEa+ZmdVfzTpJRMQiYDIwWdIM4JCWaZI+BBwDDI+I1yWNAwbUKjYzMyueWnWSkKQhJaOGAU+XDK9CamOaI2ltYM88PoCNJQ3Owwf0dKxmZlYMtWqDGghcIulhSdNJ1XdjWyZGxIOkqr1HgctJnSGIiHnAt4AbJDUDbwFzahSzmZnVUU2q+CKiGRhRYdIuJfOMaWXxWyNiM0l9gF8CvmbKzGwZ0Ah3kjhM0jRgJrAqqVefmZn1coV/YGFEnAOcU+84zMysthqhBGVmZssgJygzMyskJygzMyukwrdBmTWSt1e4h6ampnqH0a7m5uaGiBNSrLZscgnKzMwKyQnKzMwKyQnKzMwKyQnKzMwKyZ0kzKootvs5Ue8gOqiecR64yE/Osfa5BGVmZoXkBGVmZoXkBGVmZoXkBGVmZoXkBGVmZoXkBGVmZoVUtwQlaR9JSyRt1s58c2sVk5mZFUc9S1CjgDvyfzMzs6XU5UJdSQOBHYFdgb8CJ0laFxgPrJLj+mZE3J7n/xkwEpgH7B0RL9UjbjMzq516laD2Bm6IiMeAVyU1AQcCEyNiGLA1MC3PuxIwJSK2Bv4POKweAZuZWW3VK0GNAq7Mr6/Mw1OBr0gaC2wZEW/l6QuAv+XXzcDg2oVpZmb1UvMEJWkN4BPARZJmAccC+wO3AzsBzwPjJB2cF1kYEUvy60X4/oFmZsuEepSg9gMujYiNImJwRGwAPEVKTi9FxG+Bi4Bt6hCbmZkVRD1KI6OAM8rGXQ2MA96WtBCYCxyMmZkts2qeoCJi1wrjzgfOb2X+gSWvJwATei46MzMrCt9JwszMCskJyszMCskJyszMCskJyszMCsnXFJlVke49hqampnqH0a7m5uaGiNOWbS5BmZlZITlBmZlZITlBmZlZITlBmZlZIbmThFkVLd75Y0zt4rLD575b1VjMGp1LUGZmVkhOUGZmVkhOUGZmVkhOUGZmVkhOUGZmVkhOUGZmVkg162YuaREwo2TUPsAg4OCI+G6t4jAzs8ZQy+ug5kXEsLJxs4D7ahiDmZk1iLpeqCtpF+CYiBgpaSywIbBx/n9ufhQ8kr4MfBfoB9wDfCsiFtUlaDMzq4laJqgVJU3Lr5+KiH0rzLMZsCuwMhCSfgV8GDgA+M+IWCjpAmA08IdaBG1mZvVR7yq+ctdHxHxgvqSXgbWBTwJNwFRJACsCL/dopGZmVndFuxff/JLXi0jx9QEuiYjj6xOSmZnVQyN0M78Z2E/SBwAkrSFpozrHZGZmPazwCSoiHgZOBCZJmg7cCKxb36jMzKyn1ayKLyIGVhg3GZicX48tmza05PV4YHyPBmhmZoVS+BKUmZktm5ygzMyskJygzMyskJygzMyskJygzMyskIp2oa5ZQ1vutntoamqqdxhmvYJLUGZmVkhOUGZmVkhOUGZmVkhOUGZmVkjuJGFWRTPmXcWMO67q8Pxjdjy9B6Mxa2wuQZmZWSE5QZmZWSE5QZmZWSE5QZmZWSE5QZmZWSE5QZmZWSF1qZu5pHWAc4HhwBvAS8CREfFYFWMzM7NlWKcTlKQ+wDXAJRHxpTxua2BtoEsJKq+zT0Qs7sryZmbW+3SlBLUrsDAift0yIiIelNRH0pnAnsAS4JSIGC9pIHAtsDqwAnBiRFwraTAwEbgHaAL2kvQTYNu8/O8j4hxJmwC/BNYC3gEOi4hHu/h+zcysQXSlDWoo0Fxh/OeBYcDWwG7AmZLWBf4F7BsR25CS21m5xAQwBLggIrYABgHrR8TQiNgSuDjP8xvgOxHRBBwDXNCFmM3MrMFU81ZHOwJXRMQi4CVJt5HaqP4XOFXSTsBiYH1SdSDA0xExJb9+EthY0i+A64FJufQ1ArhKUst2+lcxZjMzK6iuJKiZwH6dmH80qXquKSIWSpoFDMjT3m6ZKSJez21ZewCHA/sDRwJvRMSwLsRpZmYNrCtVfLcA/SV9vWWEpK1IvfkOkNRX0lrATsC9wKrAyzk57QpsVGmlkgYBy0XE1cCJwDYR8SbwlKQv5nn65CRmZma9XKcTVEQsAfYFdpP0hKSZwGnA5cB04EFSEvt+RPwTuAzYVtIM4GCgtQ4O6wOTJU0D/ggcn8ePBg6V9CCp9LZ3Z2M2M7PG06U2qIh4gVQFV+7Y/Fc672xgh1ZWNbRkvgeBbSps6yng012J08zMGpfvJGFmZoXkBGVmZoXkBGVmZoXkBGVmZoVUzQt1zZZ5W674RZqamuodhlmv4BKUmZkVkhOUmZkVkhOUmZkVkhOUmZkVkjtJtKLv0Zd2bwWXP1ydQHpao8QJDRHrvQduXu8QzHoNl6DMzKyQnKDMzKyQnKDMzKyQnKDMzKyQnKDMzKyQnKDMzKyQup2gJJ0j6ciS4YmSLioZPkvSUa0su5qkb3U3BjMz632qUYK6ExgBIGk5YBCwRcn0EcBdrSy7GtCpBCWpT96OmZn1YtW4UPcu4Jz8egvgIWBdSasD7wAfAR6WdDOwOrACcGJEXAucDmwiaRpwY0QcK+lY0uPk+wPXRMRJkgYDE4F7gCZgL+DpKsRuZmYF1e0EFREvSHpX0oak0tLdwPrADsAcYAYpUe0bEW9KGgRMkXQd8ANgaEQMA5C0OzAE2A7oA1wnaSfgmTz+kIiY0t2Yzcys+Kp1q6O7SMlpBHA2KUGNICWoO0nJ5tScbBbn6WtXWM/u+e+BPDyQlJieAZ52cjIzW3ZUK0G1tENtSariexY4GngTuBgYDawFNEXEQkmzgAEV1tMHOC0iLiwdmav43q5SrGZm1gCq1dngLmAk8FpELIqI10gdIHbI01YFXs7JaVdgo7zcW8DKJeuZCHxV0kAASetL+kCVYjQzswZSrQQ1g9R7b0rZuDkRMRu4DNhW0gzgYOBRgIh4FbhT0kOSzoyIScDlwN153gksncDMzGwZUZUqvohYBKxSNm5MyevZpNJUpWUPLBs+DzivwqxDux2omZk1DF9PZGZmheQEZWZmheQEZWZmheQEZWZmheQEZWZmhVStC3V7nUVnHdTlZZubm2lqaqpiND2jUeKExom1ubm53iGY9RouQZmZWSE5QZmZWSE5QZmZWSE5QZmZWSE5QZmZWSE5QZmZWSE5QZmZWSE5QZmZWSH1xgt1+wIsWLCgrkHMnz+/rtvvqEaJExonVsdZfY0Sq+PsvJJzdd/yaX2WLFlS22h6WHNz847A7fWOw8zMOuXjTU1Nd5SO6I0lqKnAx4EXgUV1jsXMzNrWF1iXdO5eSq8rQZmZWe/gThJmZlZITlBmZlZITlBmZlZITlBmZlZITlBmZlZIvbGbeU1IWgMYDwwGZgH7R8TrFea7AdgeuCMiRpaMHwfsDMzJo8ZExLQCxvkh4EpgTaAZOCgieuQq6E7EeghwYh48JSIuyeMnk7qrzsvTdo+Il6sY36eB80jdYi+KiNPLpvcH/gA0Aa8CB0TErDzteOBQ0qUP342IidWKq1pxShoMPAJEnnVKRBxexzh3As4FtgK+FBETSqZVPAYKGusiYEYefCYiPlfHOI8Cvga8C7wCfDUins7TarpPO8IlqK77AXBzRAwBbs7DlZwJtPb8+GMjYlj+q3pyyrob5xnAORHxYeB10km2p7Qba05iJwEfA7YDTpK0eskso0v2aTWTU1/gl8CewObAKEmbl812KPB63lfnkPYdeb4vAVsAnwYuyOuruu7EmT1Rsv96Mjl1JM5ngDHA5WXLtncMFCbWbF7JPu3J5NSROB8Ato2IrYAJwH/nZWu6TzvKCarr9gZafmFcAuxTaaaIuBl4q1ZBVdDlOCX1AT5BOpDbXL5KOhLrHsCNEfFaLl3dSDrp97TtgMcj4slcgrwyx1uqNP4JwCfzPtwbuDIi5kfEU8DjeX1Fi7OW2o0zImZFxHRgcdmytT4GuhNrLXUkzlsj4p08OAX4YH5dr+9Vm5ygum7tiHgxv/4nsHYX1vEzSdMlnZOrXXpCd+JcE3gjIt7Nw88B61czuDIdiXV94NmS4fKYLpY0TdKPqnzSbW+7S82T99kc0j7syLJFiBPgQ5IekHSbpI/3UIwdjbMnlu2K7m5vgKT7JE2R1JM/8Dob56HA/3Zx2ZpwG1QbJN0ErFNh0gmlAxGxRFJnb8lxPOkk3A/4DXAccHIB46yqHo51dEQ8L2ll4GpSleUfuhbpMulFYMOIeFVSE/AXSVtExJv1DqzBbZSPy42BWyTNiIgn6hmQpC8D25LawQvLCaoNEbFba9MkvSRp3Yh4UdK6QKfaO0pKCvMlXQwcU8A4XwVWk7R8/qX9QeD5rsZZpVifB3YpGf4gMDmv+/n8/y1Jl5OqPKqVoJ4HNijbbvm+aJnnOUnLA6uS9mFHlq2WLscZEUuA+QAR0SzpCWBT4L46xdnWsruULTu5KlG1vr0uf34lx+WTuSPPR4GeSFAdilPSbqQfhDtHxPySZXcpW3ZyD8TYKa7i67rrgEPy60OAazuzcD4Bt7Tz7AM8VNXo3tPlOPMJ61Zgv64s3wUuOQTpAAAEt0lEQVQdiXUisLuk1XMj7u7AREnLSxoEIGkFYCTV3adTgSGSPiSpH6nTw3VtxL8fcEveh9cBX5LUP/eKHALcW8XYqhKnpLVaOm/kX/tDgCfrGGdrKh4DPRQndCPWHGP//HoQ8J/Aw/WKU9JHgQuBz5V1Iqr1Pu0QJ6iuOx34lKR/ALvlYSRtK+milpkk3Q5cRWqIfk7SHnnSZZJmkLqfDgJOKWicxwFHSXqc1E7xux6Ks0OxRsRrwE9JX8apwMl5XH9SopoOTCP9IvxttQLLJcgjSF/aR4A/RcRMSSdLaumZ9TtgzbyvjiL3QoyImcCfSCemG4BvR0SP3Gm/O3ECOwHTJU0jdZ44PO/busQpabik54AvAhdKmpmXbe0Y6BHdiRX4CHCfpAdJP/ZOj4geSVAd/OzPBAYCV+W22uvysjXdpx3lu5mbmVkhuQRlZmaF5ARlZmaF5ARlZmaF5ARlZmaF5ARlZmaF5ARlVgWSTpH0aO6uv9Rw7iZ/WQfWMU3Sit2MY2y+BqZqJM2SNLSa6zTrCN9Jwqw6jibdJuiVVoZHt7eCiBhWhThOAn4O9MgjUcxqyQnKlkmSdiBdtLhyHnVsREySNBw4H1gJeJv07KapeZm9SLeIGUBKAP8VEVNyqWkAcLOkiaTnapUOXw/8PCK2zesZCYwFViDd/fqQiJie7z24ckTMlSTS84UGke7XeG5EXJyXX5Lj2Jd08fSxEXG1pF/m93KXpMXALhHxRsl7vgiYERHn5eGhpDsNbAKMAr6XtwVwTL7Dffl+mwWMjIiHyofbitmsK1zFZ8scpWffXAN8PyK2BrYBpuaqsauBE/Pzcn4EXC2pn6RN8vCeEdFEeujbnwAiouWu3yMi4tjy4bJtbwpcBIzK294eeKpsnuVJzxX6r4gYDuwI/EDSZiWzvZmnHURKqETEt0u2O6w0OWXjeO8WRwBfAcbl2zFNBLaPiI+SbpHTqYfVdTBms05xgrJl0Q7AwxFxF0BELMrPwBGwoKXkEBE3kUpKIj0vZxPg//KtgC4DlpfU2cesfAr4e0T8I29jfkSUPy9sU9Itcq7M27qddCunj5TMc2X+PwVYT9KA9jYcEXcAK0vaMieUUbyXiDYh3SpqJumpxutIqnTX+dZ0JGazTnEVn1nH9AFuiIiDa7St2e20Sf0LUnJNNWsd/i5fQnry62TgkciP+wauAI6OiL9IWg54h1RNWe5dlv5h2zJPR2I26xSXoGxZdDeweW6HQlLffAfnAPpJ2jWP/wSpnSiAScCnJW3RspLcXtVZk4C9JA3J6+iv9PyqUgG8I+mgkm1tJmmVDqz/LdLjM1rzB1LJ6WtAafvQarxX1fhVUumnkseB4TmmT/LeQyW7E7NZRU5QtszJd2n+PHB2vvt5M9CUH5P9BeDUPP5nwH4RsSBXyX0Z+J2kByU9AnyjC9v+B3AYMD7f4fpuYHDZPO8CnyU9omN6rna7gPc6MLTlLNJD8aZJWq3C9p8h3VV9F+DPJZOOJD2g8H5gY9JzrCr5EXB0rsb7DPBMFWI2q8h3Mzczs0JyCcrMzArJCcrMzArJCcrMzArJCcrMzArJCcrMzArJCcrMzArJCcrMzArp/wGMFtE+ivfI8gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import Lasso\r\n",
    "from yellowbrick.datasets import load_concrete\r\n",
    "from yellowbrick.model_selection import FeatureImportances\r\n",
    "\r\n",
    "# Load the regression dataset\r\n",
    "dataset = load_concrete(return_dataset=True)\r\n",
    "X, y = dataset.to_data()\r\n",
    "\r\n",
    "# Title case the feature for better display and create the visualizer\r\n",
    "labels = list(map(lambda s: s.title(), dataset.meta['features']))\r\n",
    "viz = FeatureImportances(Lasso(), labels=labels, relative=False)\r\n",
    "\r\n",
    "# Fit and show the feature importances\r\n",
    "viz.fit(X, y)\r\n",
    "viz.show();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 4.2 堆叠重要性特征\n",
    "有些估计器返回一个多维数组，用于feature_importances_x或coef_u属性。例如，在多类情况下，LogisticRegression分类器返回一个coef_u数组，其形状为（n_classes，n_features）。这些系数将特征的重要性映射到特定类别的概率预测中。虽然多维特征重要性的解释依赖于特定的估计器和模型族，但是在FeatureImportances visualizer中对数据的处理是相同的，即重要性被平均化。\n",
    "\n",
    "出于几个原因，采用重要性的平均值可能是不可取的。例如，某个特性对于某些类来说可能比其他类更具信息量。在本质上是多个内部模型的情况下，多输出估计量也不会从中受益。在这种情况下，使用stack=True参数绘制重要程度的堆积条形图，如下所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from yellowbrick.model_selection import FeatureImportances\r\n",
    "from sklearn.linear_model import LogisticRegression\r\n",
    "from sklearn.datasets import load_iris\r\n",
    "\r\n",
    "data = load_iris()\r\n",
    "X, y = data.data, data.target\r\n",
    "\r\n",
    "model = LogisticRegression(multi_class=\"auto\", solver=\"liblinear\")\r\n",
    "viz = FeatureImportances(model, stack=True, relative=False)\r\n",
    "viz.fit(X, y)\r\n",
    "viz.show();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 4.3 快速方法\n",
    "可以通过关联的快速方法feature_importances实现上述相同功能。此方法将FeatureImportances使用关联的参数构建对象，将其拟合，然后\n",
    "from sklearn.ensemble import AdaBoostClassifier（可选）立即显示它。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import AdaBoostClassifier\r\n",
    "from yellowbrick.datasets import load_occupancy\r\n",
    "from yellowbrick.model_selection import feature_importances\r\n",
    "\r\n",
    "# Load dataset\r\n",
    "X, y = load_occupancy()\r\n",
    "\r\n",
    "# Use the quick method and immediately show the figure\r\n",
    "feature_importances(AdaBoostClassifier(), X, y);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 5 递归特征消除\n",
    "递归特征消除（RFE）是一种特征选择方法，它适合模型并删除最弱的一个或多个特征，直到达到指定数量的特征为止。特征按模型coef_或feature_importances_属性进行排序，并且通过递归消除每个循环中的少量特征，RFE尝试消除模型中可能存在的依赖关系和共线性。\n",
    "\n",
    "RFE需要保留指定数量的功能，但是通常事先不知道有多少有效功能。为了找到最佳数量的特征，将交叉验证与RFE一起使用，对不同的特征子集进行评分，并选择最佳的特征评分集合。该RFECV可视化工具绘制的模型特征的数量与他们的交叉验证测试分数和多变性和可视化选择的多项功能一起。\n",
    "\n",
    "为了展示其在实际中的工作方式，我们将从一个人为设计的示例开始，该示例使用的数据集中只有25个中的3个信息功能。\n",
    "\n",
    "|可视化器|RFECV|\n",
    "|-|-|\n",
    "|快速使用方法|rfecv()|\n",
    "|模型|分类，回归|\n",
    "|工作流程|选型|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 5.1 基础使用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.svm import SVC\r\n",
    "from sklearn.datasets import make_classification\r\n",
    "\r\n",
    "from yellowbrick.model_selection import RFECV\r\n",
    "\r\n",
    "# Create a dataset with only 3 informative features\r\n",
    "# 只有三个有效特征\r\n",
    "X, y = make_classification(\r\n",
    "    n_samples=1000, n_features=25, n_informative=3, n_redundant=2,\r\n",
    "    n_repeated=0, n_classes=8, n_clusters_per_class=1, random_state=0\r\n",
    ")\r\n",
    "\r\n",
    "# Instantiate RFECV visualizer with a linear SVM classifier\r\n",
    "visualizer = RFECV(SVC(kernel='linear', C=1))\r\n",
    "\r\n",
    "visualizer.fit(X, y)        # Fit the data to the visualizer\r\n",
    "visualizer.show();           # Finalize and render the figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "该图显示了一条理想的RFECV曲线，当捕获了三个信息性特征时，该曲线跳至极佳的精度，然后随着将非信息性特征添加到模型中而逐渐降低了精度。阴影区域表示交叉验证的变异性，即曲线绘制的平均准确度得分之上和之下的一个标准偏差。\n",
    "\n",
    "探索真实数据集，我们可以看到RFECV对credit默认二进制分类器的影响。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RFECV(ax=<matplotlib.axes._subplots.AxesSubplot object at 0x7f04351ba190>,\n",
       "   cv=StratifiedKFold(n_splits=2, random_state=None, shuffle=False),\n",
       "   groups=None, model=None, scoring='f1_weighted', step=1)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f04351ba190>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\r\n",
    "from sklearn.model_selection import StratifiedKFold\r\n",
    "\r\n",
    "from yellowbrick.model_selection import RFECV\r\n",
    "from yellowbrick.datasets import load_credit\r\n",
    "\r\n",
    "# Load classification dataset\r\n",
    "X, y = load_credit()\r\n",
    "\r\n",
    "cv = StratifiedKFold(2)\r\n",
    "visualizer = RFECV(RandomForestClassifier(), cv=cv, scoring='f1_weighted')\r\n",
    "\r\n",
    "visualizer.fit(X, y)        # Fit the data to the visualizer\r\n",
    "visualizer.show()           # Finalize and render the figure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "在此示例中，我们可以看到选择了15个特征，尽管在大约5个特征之后，模型的f1得分似乎没有太大改善。选择要消除的特征在确定每次递归的结果中起着很大的作用；修改step参数以在每个步骤中消除一个以上的特征可能有助于尽早消除最差的特征，从而增强其余特征（并且还可以用于加快具有大量特征的数据集的特征消除）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 5.2 快速方法\r\n",
    "上面的相同功能可以通过关联的快速方法来实现rfecv。此方法将RFECV使用关联的参数构建对象，将其拟合，然后（可选）立即显示可视化效果。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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WLJkCZmZifeAO5hjC/Lz8/npT3/KqlWr+qzfvHkzzzzzDM888ww2m43LLruMU089lSlTphyUdB2oZ555JtVJSEsSIOJo7nLz/KdGDvHcislk2a1MzDv4A7pEclVXV3P55ZezaNEiPv74Y0pLS/njH/+Iw+Hot+/bb7/N8uXLMZvNrF69mkcffZQXXniBRx99FK/Xy7x587jpppuwWCzcdNNNfPrpp7jdbs444wyuueYaHnnkEerr67n44ovJz8/n0UcfZcGCBXz88ccAvPzyy7z11lvcdddd3HDDDdjtdjZu3MjChQu59tprue2229iyZQs+n4+rrrqKz33uc2zZsoWf/OQneL1eAoEA9957L1OnTh32/SgqKqKoqIi33367z/pt27Zx5JFH9ga2o446ildffZXLL7982Nc6mGbOnJnqJKQlCRBxVO5pYs3u/fMuTSt0jup+3mL4du3axd13380vfvELrr32Wl555RXOPffcfvudfPLJLF26lKysLC699FK2bdvGypUrefLJJ7HZbNx88828+OKLnHfeefzgBz8gPz8fv9/PJZdcwqZNm7jooot4+OGHWb58OYWFhYOmq66ujhUrVmCxWLj77rs59thjufPOO2lvb+eCCy7g+OOPZ8WKFVx00UUsWbIEj8cTc6Da97//fXbs6P+a3G9961ucd955Cd2jmTNn8rvf/Y6WlhYcDgfvvPMOFRUVCR07GoTnmJLR80MjASKGQCDIwx9uIwgsmTuZ/Ew7xc7+OUoxNkyaNInZs2cDMHfuXGpqahI6bvXq1VRVVfGVr3wFgJ6eHoqKigBYuXIlTz/9ND6fj4aGBrZt28asWbOGlK4zzzwTi8V4t8h7773HG2+8wUMPPQSA2+1m3759zJ8/n/vvv5/a2lo+//nPxyw9/O53vxvSdWOZPn06l112GZdeeimZmZnMmjULszl9qluPOuooQAbKDZUEiBhq2rpYubGGfIeNkw8vk0FxY1xkrtJiseB2uxM6LhgM8qUvfYkf/vCHfdbv2bOHhx56iGeffZa8vDxuuOGGhM4ZvU90O8U999zDtGnT+qybPn068+bN46233uI73/kOt9xyC8cdd1yffUaiBAFwwQUXcMEFFwBw9913U1pamvCxIj1JgIjh0crtdLh9XLhgKpPzsnBm2FKdJDEKHXfccVx55ZVccsklFBUV0dra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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\r\n",
    "from sklearn.model_selection import StratifiedKFold\r\n",
    "\r\n",
    "from yellowbrick.model_selection import rfecv\r\n",
    "from yellowbrick.datasets import load_credit\r\n",
    "\r\n",
    "# Load classification dataset\r\n",
    "X, y = load_credit()\r\n",
    "\r\n",
    "cv = StratifiedKFold(2)\r\n",
    "visualizer = rfecv(RandomForestClassifier(), X=X, y=y, cv=cv, scoring='f1_weighted');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 6 参考\n",
    "[https://www.scikit-yb.org/en/latest/api/model_selection/validation_curve.html](https://www.scikit-yb.org/en/latest/api/model_selection/validation_curve.html)\n",
    "\n",
    "[https://www.scikit-yb.org/en/latest/api/model_selection/learning_curve.html](https://www.scikit-yb.org/en/latest/api/model_selection/learning_curve.html)\n",
    "\n",
    "[https://www.scikit-yb.org/en/latest/api/model_selection/cross_validation.html](https://www.scikit-yb.org/en/latest/api/model_selection/cross_validation.html)\n",
    "\n",
    "[https://www.scikit-yb.org/en/latest/api/model_selection/importances.html](https://www.scikit-yb.org/en/latest/api/model_selection/importances.html)\n",
    "\n",
    "[https://www.scikit-yb.org/en/latest/api/model_selection/rfecv.html](https://www.scikit-yb.org/en/latest/api/model_selection/rfecv.html)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "PaddlePaddle 1.8.0 (Python 3.5)",
   "language": "python",
   "name": "py35-paddle1.2.0"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
